Chris Lattner [Mon, 27 Mar 2006 22:49:46 +0000 (22:49 +0000)]
Add support for intrinsics with pointer arguments in target .td files.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27190
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 27 Mar 2006 22:49:07 +0000 (22:49 +0000)]
Add some missing template specializations for autodereferencing User.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27189
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 27 Mar 2006 22:48:18 +0000 (22:48 +0000)]
Add support for decoding iPTR to the right pointer type.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27188
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 27 Mar 2006 22:48:00 +0000 (22:48 +0000)]
add a new iPTR ValueType for tblgen use
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27187
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 27 Mar 2006 22:38:39 +0000 (22:38 +0000)]
Divirge from the GCC specification of the load/store intrinsics: only take
one pointer operand, instead of a pointer and an offset. The FE will lower
to this canonicalized form.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27186
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 27 Mar 2006 22:21:18 +0000 (22:21 +0000)]
Print error messages like this:
tblgen: In STVEBX: Intrinsic 'llvm.ppc.altivec.stvebx' expects 3 operands, not 2 operands!
instead of like this:
tblgen: In STVEBX: Intrinsic 'intrinsic_void expects 3 operands, not 2 operands!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27185
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 27 Mar 2006 22:07:12 +0000 (22:07 +0000)]
fix spelling :(
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27184
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 27 Mar 2006 22:05:34 +0000 (22:05 +0000)]
add some more intrinsics.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27183
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 27 Mar 2006 21:36:03 +0000 (21:36 +0000)]
Disable dbg_declare, it currently breaks the CFE build
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27182
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 27 Mar 2006 20:28:29 +0000 (20:28 +0000)]
Fix legalization of intrinsics with chain and result values
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27181
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Laskey [Mon, 27 Mar 2006 20:18:45 +0000 (20:18 +0000)]
Translate llvm target registers to dwarf register numbers properly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27180
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Laskey [Mon, 27 Mar 2006 19:46:38 +0000 (19:46 +0000)]
Misunderstanding.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27179
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Laskey [Mon, 27 Mar 2006 19:43:08 +0000 (19:43 +0000)]
Typo.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27178
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Laskey [Mon, 27 Mar 2006 19:33:35 +0000 (19:33 +0000)]
Clarity.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27177
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Laskey [Mon, 27 Mar 2006 19:09:44 +0000 (19:09 +0000)]
Adding other platforms.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27176
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Laskey [Mon, 27 Mar 2006 18:41:06 +0000 (18:41 +0000)]
Add note for Mac OS X developers.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27175
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 27 Mar 2006 16:52:45 +0000 (16:52 +0000)]
unbreak the build
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27174
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 27 Mar 2006 16:10:59 +0000 (16:10 +0000)]
Unbreak the build on non-apple compilers :-(
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27173
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Mon, 27 Mar 2006 08:23:12 +0000 (08:23 +0000)]
Intrinsics naming convention change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27172
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Mon, 27 Mar 2006 08:10:26 +0000 (08:10 +0000)]
Try again
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27171
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 27 Mar 2006 07:41:00 +0000 (07:41 +0000)]
Add a bunch of notes from my journey thus far.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27170
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Mon, 27 Mar 2006 07:26:17 +0000 (07:26 +0000)]
Incorrect check for FP all one's
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27169
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 27 Mar 2006 07:04:16 +0000 (07:04 +0000)]
Split out altivec notes into their own README
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27168
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Mon, 27 Mar 2006 07:00:16 +0000 (07:00 +0000)]
Use pcmpeq to generate vector of all ones.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27167
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Mon, 27 Mar 2006 06:59:32 +0000 (06:59 +0000)]
Changed isBuildVectorAllOnesInteger to isBuildVectorAllOnes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27166
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Mon, 27 Mar 2006 06:58:47 +0000 (06:58 +0000)]
Change isBuildVectorAllOnesInteger to isBuildVectorAllOnes. Also check for
floating point cases.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27165
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 27 Mar 2006 06:45:25 +0000 (06:45 +0000)]
Instead of printing "INTRINSIC" on intrinsic node, print the intrinsic name.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27164
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 27 Mar 2006 05:50:18 +0000 (05:50 +0000)]
teach the inliner to work with packed constants
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27161
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 27 Mar 2006 03:34:17 +0000 (03:34 +0000)]
Fix the JIT encoding of VSEL
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27160
91177308-0d34-0410-b5e6-
96231b3b80d8
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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