oota-llvm.git
18 years agoFix the JIT encoding of VSPLTI*
Chris Lattner [Mon, 27 Mar 2006 03:28:57 +0000 (03:28 +0000)]
Fix the JIT encoding of VSPLTI*

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

18 years agoPass llvm/test/Regression/CodeGen/Generic/debug-info.ll.
Jim Laskey [Mon, 27 Mar 2006 01:51:47 +0000 (01:51 +0000)]
Pass llvm/test/Regression/CodeGen/Generic/debug-info.ll.

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

18 years agoSelectionDAGISel can now natively handle Switch instructions, in the same
Nate Begeman [Mon, 27 Mar 2006 01:32:24 +0000 (01:32 +0000)]
SelectionDAGISel can now natively handle Switch instructions, in the same
manner that the LowerSwitch LLVM to LLVM pass does: emitting a binary
search tree of basic blocks.  The new approach has several advantages:
it is faster, it generates significantly smaller code in many cases, and
it paves the way for implementing dense switch tables as a jump table by
handling switches directly in the instruction selector.

This functionality is currently only enabled on x86, but should be safe for
every target.  In anticipation of making it the default, the cfg is now
properly updated in the x86, ppc, and sparc select lowering code.

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

18 years agoBullet proof against undefined args produced by upgrading ols-style debug info.
Jim Laskey [Sun, 26 Mar 2006 22:46:27 +0000 (22:46 +0000)]
Bullet proof against undefined args produced by upgrading ols-style debug info.

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

18 years agoHow to be dumb on $5/day. Need a tri-state to track valid debug descriptors.
Jim Laskey [Sun, 26 Mar 2006 22:45:20 +0000 (22:45 +0000)]
How to be dumb on $5/day.  Need a tri-state to track valid debug descriptors.

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

18 years agoadd vsel
Chris Lattner [Sun, 26 Mar 2006 22:38:43 +0000 (22:38 +0000)]
add vsel

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

18 years agoReadme note
Nate Begeman [Sun, 26 Mar 2006 19:19:27 +0000 (19:19 +0000)]
Readme note

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

18 years agoCodegen vector predicate compares.
Chris Lattner [Sun, 26 Mar 2006 10:06:40 +0000 (10:06 +0000)]
Codegen vector predicate compares.

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

18 years agoRemove X86:isZeroVector, use ISD::isBuildVectorAllZeros instead; some fixes / cleanups
Evan Cheng [Sun, 26 Mar 2006 09:53:12 +0000 (09:53 +0000)]
Remove X86:isZeroVector, use ISD::isBuildVectorAllZeros instead; some fixes / cleanups

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

18 years agoRemove PPC:isZeroVector, use ISD::isBuildVectorAllZeros instead
Evan Cheng [Sun, 26 Mar 2006 09:52:32 +0000 (09:52 +0000)]
Remove PPC:isZeroVector, use ISD::isBuildVectorAllZeros instead

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

18 years agoAdd immAllZerosV helper
Evan Cheng [Sun, 26 Mar 2006 09:51:39 +0000 (09:51 +0000)]
Add immAllZerosV helper

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

18 years agoAdd ISD::isBuildVectorAllZeros predicate
Evan Cheng [Sun, 26 Mar 2006 09:50:58 +0000 (09:50 +0000)]
Add ISD::isBuildVectorAllZeros predicate

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

18 years agoAllow targets to custom lower their own intrinsics if desired.
Chris Lattner [Sun, 26 Mar 2006 09:12:51 +0000 (09:12 +0000)]
Allow targets to custom lower their own intrinsics if desired.

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

18 years agoAdd predicate comparison intrinsics.
Chris Lattner [Sun, 26 Mar 2006 07:50:25 +0000 (07:50 +0000)]
Add predicate comparison intrinsics.

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

18 years agoUpdate dependencies to reflect split of the Intrinsics.td file
Chris Lattner [Sun, 26 Mar 2006 07:45:48 +0000 (07:45 +0000)]
Update dependencies to reflect split of the Intrinsics.td file

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

18 years agoAdd all of the altivec comparison instructions. Add patterns for the
Chris Lattner [Sun, 26 Mar 2006 04:57:17 +0000 (04:57 +0000)]
Add all of the altivec comparison instructions.  Add patterns for the
non-predicate altivec compare intrinsics.

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

18 years agoAdd and 8/16-bit adds, add all integer subtracts, add saturating subtract
Chris Lattner [Sun, 26 Mar 2006 02:39:02 +0000 (02:39 +0000)]
Add and 8/16-bit adds, add all integer subtracts, add saturating subtract
intrinsics.

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

18 years agoSplit the PPC and X86 intrinsics out to their own files.
Chris Lattner [Sun, 26 Mar 2006 02:37:19 +0000 (02:37 +0000)]
Split the PPC and X86 intrinsics out to their own files.

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

18 years agoAdd saturating subtracts, non-predicate compares, and some other random
Chris Lattner [Sun, 26 Mar 2006 02:34:07 +0000 (02:34 +0000)]
Add saturating subtracts, non-predicate compares, and some other random
intrinsics.

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

18 years agoimplement the vsldoi intrinsic.
Chris Lattner [Sun, 26 Mar 2006 00:41:48 +0000 (00:41 +0000)]
implement the vsldoi intrinsic.

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

18 years agoadd int_ppc_altivec_vsldoi intrinsic
Chris Lattner [Sun, 26 Mar 2006 00:25:43 +0000 (00:25 +0000)]
add int_ppc_altivec_vsldoi intrinsic

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

18 years agoCorrect the vandc testcase
Chris Lattner [Sat, 25 Mar 2006 23:12:47 +0000 (23:12 +0000)]
Correct the vandc testcase

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

18 years agofix the pattern for vandc, it's NOT vnand
Chris Lattner [Sat, 25 Mar 2006 23:10:40 +0000 (23:10 +0000)]
fix the pattern for vandc, it's NOT vnand

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

18 years agoadd patterns for VANDC/VNOR, implementing
Chris Lattner [Sat, 25 Mar 2006 23:05:29 +0000 (23:05 +0000)]
add patterns for VANDC/VNOR, implementing
CodeGen/PowerPC/eqv-andc-orc-nor.ll:VNOR/VANDC

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

18 years agonew testcases
Chris Lattner [Sat, 25 Mar 2006 23:04:34 +0000 (23:04 +0000)]
new testcases

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

18 years agoAdd some comments.
Chris Lattner [Sat, 25 Mar 2006 23:00:56 +0000 (23:00 +0000)]
Add some comments.

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

18 years agoadd a vnot helper node for matching 'not' on vectors
Chris Lattner [Sat, 25 Mar 2006 23:00:08 +0000 (23:00 +0000)]
add a vnot helper node for matching 'not' on vectors

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

18 years agoFix a bug in ISD::isBuildVectorAllOnesInteger that caused it to always return
Chris Lattner [Sat, 25 Mar 2006 22:59:28 +0000 (22:59 +0000)]
Fix a bug in ISD::isBuildVectorAllOnesInteger that  caused it to always return
false

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

18 years agoImplement the ISD::isBuildVectorAllOnesInteger predicate
Chris Lattner [Sat, 25 Mar 2006 22:57:01 +0000 (22:57 +0000)]
Implement the ISD::isBuildVectorAllOnesInteger predicate

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

18 years agoAdd a predicate
Chris Lattner [Sat, 25 Mar 2006 22:56:35 +0000 (22:56 +0000)]
Add a predicate

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

18 years agoDon't call SimplifyDemandedBits on vectors
Chris Lattner [Sat, 25 Mar 2006 22:19:00 +0000 (22:19 +0000)]
Don't call SimplifyDemandedBits on vectors

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

18 years agoAdd some logical operations
Chris Lattner [Sat, 25 Mar 2006 22:16:05 +0000 (22:16 +0000)]
Add some logical operations

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

18 years agoAdd a missing check which cause an invalid .td file to crash tblgen
Chris Lattner [Sat, 25 Mar 2006 22:12:44 +0000 (22:12 +0000)]
Add a missing check which cause an invalid .td file to crash tblgen

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

18 years agoDon't crash on packed logical ops
Chris Lattner [Sat, 25 Mar 2006 21:58:26 +0000 (21:58 +0000)]
Don't crash on packed logical ops

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

18 years agoTeach BinaryOperator::createNot to work with packed integer types
Chris Lattner [Sat, 25 Mar 2006 21:54:21 +0000 (21:54 +0000)]
Teach BinaryOperator::createNot to work with packed integer types

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

18 years agoUnused function - easier to throw away than fix.
Jim Laskey [Sat, 25 Mar 2006 18:42:45 +0000 (18:42 +0000)]
Unused function - easier to throw away than fix.

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

18 years agoCast instruction not inserted into basic block.
Jim Laskey [Sat, 25 Mar 2006 18:40:47 +0000 (18:40 +0000)]
Cast instruction not inserted into basic block.

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

18 years agoAdd a BUILD_VECTOR with unpack and interleave testcase.
Evan Cheng [Sat, 25 Mar 2006 09:48:14 +0000 (09:48 +0000)]
Add a BUILD_VECTOR with unpack and interleave testcase.

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

18 years agoAdded missing (any_extend (load ...)) patterns.
Evan Cheng [Sat, 25 Mar 2006 09:45:48 +0000 (09:45 +0000)]
Added missing (any_extend (load ...)) patterns.

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

18 years agoBuild arbitrary vector with more than 2 distinct scalar elements with a
Evan Cheng [Sat, 25 Mar 2006 09:37:23 +0000 (09:37 +0000)]
Build arbitrary vector with more than 2 distinct scalar elements with a
series of unpack and interleave ops.

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

18 years agoimplement a bunch of intrinsics
Chris Lattner [Sat, 25 Mar 2006 08:01:02 +0000 (08:01 +0000)]
implement a bunch of intrinsics

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

18 years agoMove all Altivec stuff out into a new PPCInstrAltivec.td file.
Chris Lattner [Sat, 25 Mar 2006 07:51:43 +0000 (07:51 +0000)]
Move all Altivec stuff out into a new PPCInstrAltivec.td file.

Add a bunch of patterns for different datatypes, e.g. bit_convert, undef and
zero vector support.

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

18 years agoAdd some basic patterns for other datatypes
Chris Lattner [Sat, 25 Mar 2006 07:39:07 +0000 (07:39 +0000)]
Add some basic patterns for other datatypes

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

18 years agoadd all supported formats to the vector register file
Chris Lattner [Sat, 25 Mar 2006 07:36:56 +0000 (07:36 +0000)]
add all supported formats to the vector register file

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

18 years agoremove extraneous lets
Chris Lattner [Sat, 25 Mar 2006 07:30:34 +0000 (07:30 +0000)]
remove extraneous lets

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

18 years agoAdd a bunch of simple altivec intrinsics
Chris Lattner [Sat, 25 Mar 2006 07:27:18 +0000 (07:27 +0000)]
Add a bunch of simple altivec intrinsics

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

18 years agoAdd support for __builtin_altivec_vnmsubfp /vmaddfp
Chris Lattner [Sat, 25 Mar 2006 07:05:55 +0000 (07:05 +0000)]
Add support for __builtin_altivec_vnmsubfp /vmaddfp

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

18 years agoAdd support for __builtin_altivec_vnmsubfp
Chris Lattner [Sat, 25 Mar 2006 07:05:35 +0000 (07:05 +0000)]
Add support for __builtin_altivec_vnmsubfp

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

18 years agoWhen failing selection for an intrinsic, print this:
Chris Lattner [Sat, 25 Mar 2006 06:47:53 +0000 (06:47 +0000)]
When failing selection for an intrinsic, print this:

Cannot yet select: intrinsic %llvm.ppc.altivec.lvx

instead of this:

Cannot yet select: 0x9b047e0: v4i32,ch = INTRINSIC 0x9b04540:1, 0x9b04710, 0x9b04790, 0x9b04540

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

18 years ago#include Intrinsics.h into all dag isels
Chris Lattner [Sat, 25 Mar 2006 06:47:10 +0000 (06:47 +0000)]
#include Intrinsics.h into all dag isels

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

18 years agoImplement Intrinsic::getName
Chris Lattner [Sat, 25 Mar 2006 06:32:47 +0000 (06:32 +0000)]
Implement Intrinsic::getName

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

18 years agoAdd a programatic interface to intrinsic names.
Chris Lattner [Sat, 25 Mar 2006 06:32:07 +0000 (06:32 +0000)]
Add a programatic interface to intrinsic names.

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

18 years agoCodegen things like:
Chris Lattner [Sat, 25 Mar 2006 06:12:06 +0000 (06:12 +0000)]
Codegen things like:
 <int -1, int -1, int -1, int -1>
and
 <int 65537, int 65537, int 65537, int 65537>

Using things like:
  vspltisb v0, -1
and:
  vspltish v0, 1

instead of using constant pool loads.

This implements CodeGen/PowerPC/vec_splat.ll:splat_imm_i{32|16}.

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

18 years agoNew tests for vsplti*
Chris Lattner [Sat, 25 Mar 2006 06:11:56 +0000 (06:11 +0000)]
New tests for vsplti*

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

18 years agoX86 SSE1 cacheability support ops intrinsics
Evan Cheng [Sat, 25 Mar 2006 06:05:45 +0000 (06:05 +0000)]
X86 SSE1 cacheability support ops intrinsics

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

18 years agoAdded SSE cachebility ops
Evan Cheng [Sat, 25 Mar 2006 06:03:26 +0000 (06:03 +0000)]
Added SSE cachebility ops

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

18 years agoInstruction encoding bug
Evan Cheng [Sat, 25 Mar 2006 06:00:03 +0000 (06:00 +0000)]
Instruction encoding bug

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

18 years agoAdded a scalar to vector with zero extension testcase
Evan Cheng [Sat, 25 Mar 2006 05:58:52 +0000 (05:58 +0000)]
Added a scalar to vector with zero extension testcase

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

18 years agoAdd new intrinsic node definitions for tblgen use
Chris Lattner [Sat, 25 Mar 2006 02:29:35 +0000 (02:29 +0000)]
Add new intrinsic node definitions for tblgen use

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

18 years agoX86 SSE1 SIMD store intrinsics.
Evan Cheng [Sat, 25 Mar 2006 02:02:51 +0000 (02:02 +0000)]
X86 SSE1 SIMD store intrinsics.

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

18 years agoX86 SSE1 SIMD load intrinsics (movhps, movlps, and movups).
Evan Cheng [Sat, 25 Mar 2006 01:58:54 +0000 (01:58 +0000)]
X86 SSE1 SIMD load intrinsics (movhps, movlps, and movups).

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

18 years agoX86 SSE1 conversion operations intrinsics.
Evan Cheng [Sat, 25 Mar 2006 01:35:17 +0000 (01:35 +0000)]
X86 SSE1 conversion operations intrinsics.

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

18 years agoAdded 128-bit packed integer subtraction.
Evan Cheng [Sat, 25 Mar 2006 01:33:37 +0000 (01:33 +0000)]
Added 128-bit packed integer subtraction.

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

18 years agoAdded CVTTPS2PI.
Evan Cheng [Sat, 25 Mar 2006 01:31:59 +0000 (01:31 +0000)]
Added CVTTPS2PI.

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

18 years agoAdded CVTSS2SI.
Evan Cheng [Sat, 25 Mar 2006 01:00:18 +0000 (01:00 +0000)]
Added CVTSS2SI.

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

18 years agoX86 SSE1 comparison intrinsics.
Evan Cheng [Sat, 25 Mar 2006 00:32:32 +0000 (00:32 +0000)]
X86 SSE1 comparison intrinsics.

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

18 years agoX86 SSE1 arithmetic and logical operation intrinsics.
Evan Cheng [Sat, 25 Mar 2006 00:18:20 +0000 (00:18 +0000)]
X86 SSE1 arithmetic and logical operation intrinsics.

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

18 years agoSupport for scalar to vector with zero extension.
Evan Cheng [Fri, 24 Mar 2006 23:15:12 +0000 (23:15 +0000)]
Support for scalar to vector with zero extension.

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

18 years agoChange approach so that we get codegen for free for intrinsics. With this,
Chris Lattner [Fri, 24 Mar 2006 23:10:39 +0000 (23:10 +0000)]
Change approach so that we get codegen for free for intrinsics.  With this,
intrinsics that don't take pointer arguments now work.  For example, we can
compile this:

int test3( __m128d *A) {
  return _mm_movemask_pd(*A);
}
int test4( __m128 *A) {
  return _mm_movemask_ps(*A);
}

to this:

_test3:
        movl 4(%esp), %eax
        movapd (%eax), %xmm0
        movmskpd %xmm0, %eax
        ret
_test4:
        movl 4(%esp), %eax
        movaps (%eax), %xmm0
        movmskps %xmm0, %eax
        ret

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

18 years agofix inverted conditional
Chris Lattner [Fri, 24 Mar 2006 22:49:42 +0000 (22:49 +0000)]
fix inverted conditional

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

18 years agoD'oh - should be even numbered.
Jim Laskey [Fri, 24 Mar 2006 22:48:02 +0000 (22:48 +0000)]
D'oh - should be even numbered.

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

18 years agoAdded LDMXCSR
Evan Cheng [Fri, 24 Mar 2006 22:28:37 +0000 (22:28 +0000)]
Added LDMXCSR

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

18 years agoldmxcsr is a SSE instruction.
Evan Cheng [Fri, 24 Mar 2006 22:13:47 +0000 (22:13 +0000)]
ldmxcsr is a SSE instruction.

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

18 years agoAdded ldmxcsr intrinsic.
Evan Cheng [Fri, 24 Mar 2006 22:10:59 +0000 (22:10 +0000)]
Added ldmxcsr intrinsic.

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

18 years agofix 80 column violations
Chris Lattner [Fri, 24 Mar 2006 21:52:20 +0000 (21:52 +0000)]
fix 80 column violations

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

18 years agoplug the intrinsics into the patterns for movmsk*
Chris Lattner [Fri, 24 Mar 2006 21:49:18 +0000 (21:49 +0000)]
plug the intrinsics into the patterns for movmsk*

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

18 years agoParse intrinsics correctly and perform type propagation. This doesn't currently
Chris Lattner [Fri, 24 Mar 2006 21:48:51 +0000 (21:48 +0000)]
Parse intrinsics correctly and perform type propagation.  This doesn't currently
emit the code to select intrinsics, but that is next :)

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

18 years agoAdd dwarf register numbering to register data.
Jim Laskey [Fri, 24 Mar 2006 21:15:58 +0000 (21:15 +0000)]
Add dwarf register numbering to register data.

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

18 years agoAdd support for dwarf register numbering.
Jim Laskey [Fri, 24 Mar 2006 21:13:21 +0000 (21:13 +0000)]
Add support for dwarf register numbering.

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

18 years agoHack no more.
Jim Laskey [Fri, 24 Mar 2006 21:10:36 +0000 (21:10 +0000)]
Hack no more.

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

18 years agoMake sure to initialize the TheDef field!
Chris Lattner [Fri, 24 Mar 2006 20:25:01 +0000 (20:25 +0000)]
Make sure to initialize the TheDef field!

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

18 years agoadd another note
Chris Lattner [Fri, 24 Mar 2006 20:04:27 +0000 (20:04 +0000)]
add another note

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

18 years agoadd a note
Chris Lattner [Fri, 24 Mar 2006 19:59:17 +0000 (19:59 +0000)]
add a note

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

18 years agoMove CodeGenIntrinsic implementation to CodeGenTarget.cpp with the rest of
Chris Lattner [Fri, 24 Mar 2006 19:49:31 +0000 (19:49 +0000)]
Move CodeGenIntrinsic implementation to CodeGenTarget.cpp with the rest of
the CodeGen* implementations.

Parse the MVT::ValueType for each operand of the intrinsics.

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

18 years agoSpecify the value type for each llvm type. This needs work for pointers.
Chris Lattner [Fri, 24 Mar 2006 19:41:10 +0000 (19:41 +0000)]
Specify the value type for each llvm type.  This needs work for pointers.

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

18 years agoShuffle some includes around
Chris Lattner [Fri, 24 Mar 2006 18:52:35 +0000 (18:52 +0000)]
Shuffle some includes around

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

18 years agoPull in valuetypes.td here, we will use it shortly.
Chris Lattner [Fri, 24 Mar 2006 18:51:56 +0000 (18:51 +0000)]
Pull in valuetypes.td here, we will use it shortly.

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

18 years agoOnly to vector shuffle for {x,x,y,y} cases when SCALAR_TO_VECTOR is free.
Evan Cheng [Fri, 24 Mar 2006 18:45:20 +0000 (18:45 +0000)]
Only to vector shuffle for {x,x,y,y} cases when SCALAR_TO_VECTOR is free.

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

18 years agoexpose intrinsic info to the targets.
Chris Lattner [Fri, 24 Mar 2006 18:44:11 +0000 (18:44 +0000)]
expose intrinsic info to the targets.

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

18 years agoFix a bad JIT encoding of VPERM. Why is VPERM D,A,B,C but vfmadd is D,A,C,B ??
Chris Lattner [Fri, 24 Mar 2006 18:24:43 +0000 (18:24 +0000)]
Fix a bad JIT encoding of VPERM.  Why is VPERM D,A,B,C but vfmadd is D,A,C,B ??

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

18 years agoLike the comment says, prefer to use the implicit add done by [r+r] addressing
Chris Lattner [Fri, 24 Mar 2006 17:58:06 +0000 (17:58 +0000)]
Like the comment says, prefer to use the implicit add done by [r+r] addressing
modes than emitting an explicit add and using a base of r0.  This implements
Regression/CodeGen/PowerPC/mem-rr-addr-mode.ll

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

18 years agoNew testcase
Chris Lattner [Fri, 24 Mar 2006 17:57:24 +0000 (17:57 +0000)]
New testcase

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

18 years agoTweak a comment.
Jim Laskey [Fri, 24 Mar 2006 16:18:42 +0000 (16:18 +0000)]
Tweak a comment.

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

18 years agoFix indent.
Jim Laskey [Fri, 24 Mar 2006 10:08:23 +0000 (10:08 +0000)]
Fix indent.

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

18 years agoClean up some commentary.
Jim Laskey [Fri, 24 Mar 2006 10:00:56 +0000 (10:00 +0000)]
Clean up some commentary.

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

18 years agoRename for truth in advertising.
Jim Laskey [Fri, 24 Mar 2006 09:50:27 +0000 (09:50 +0000)]
Rename for truth in advertising.

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

18 years agoFixed some grammer and spelling.
Jim Laskey [Fri, 24 Mar 2006 09:20:27 +0000 (09:20 +0000)]
Fixed some grammer and spelling.

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

18 years agoZero vector testcase
Evan Cheng [Fri, 24 Mar 2006 08:02:50 +0000 (08:02 +0000)]
Zero vector testcase

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

18 years agoDisable the i32->float G5 optimization. It is unsafe, as documented in the
Chris Lattner [Fri, 24 Mar 2006 07:53:47 +0000 (07:53 +0000)]
Disable the i32->float G5 optimization.  It is unsafe, as documented in the
comment.

This fixes 177.mesa, and McCat/09-vor with the td scheduler.

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

18 years agoadd support for using vxor to build zero vectors. This implements
Chris Lattner [Fri, 24 Mar 2006 07:48:08 +0000 (07:48 +0000)]
add support for using vxor to build zero vectors.  This implements
Regression/CodeGen/PowerPC/vec_zero.ll

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