Evan Cheng
892e20720f
Added a scalar to vector with zero extension testcase
...
llvm-svn: 27101
2006-03-25 05:58:52 +00:00
Chris Lattner
b0e8c6dd7f
Add new intrinsic node definitions for tblgen use
...
llvm-svn: 27100
2006-03-25 02:29:35 +00:00
Evan Cheng
ad4f96ae46
X86 SSE1 SIMD store intrinsics.
...
llvm-svn: 27099
2006-03-25 02:02:51 +00:00
Evan Cheng
35a181d293
X86 SSE1 SIMD load intrinsics (movhps, movlps, and movups).
...
llvm-svn: 27098
2006-03-25 01:58:54 +00:00
Evan Cheng
b58801303a
X86 SSE1 conversion operations intrinsics.
...
llvm-svn: 27097
2006-03-25 01:35:17 +00:00
Evan Cheng
234090b386
Added 128-bit packed integer subtraction.
...
llvm-svn: 27096
2006-03-25 01:33:37 +00:00
Evan Cheng
b280b34497
Added CVTTPS2PI.
...
llvm-svn: 27095
2006-03-25 01:31:59 +00:00
Evan Cheng
041c9c534b
Added CVTSS2SI.
...
llvm-svn: 27094
2006-03-25 01:00:18 +00:00
Evan Cheng
35bbc93d35
X86 SSE1 comparison intrinsics.
...
llvm-svn: 27093
2006-03-25 00:32:32 +00:00
Evan Cheng
e3f4eecb44
X86 SSE1 arithmetic and logical operation intrinsics.
...
llvm-svn: 27092
2006-03-25 00:18:20 +00:00
Evan Cheng
bdb85b387f
Support for scalar to vector with zero extension.
...
llvm-svn: 27091
2006-03-24 23:15:12 +00:00
Chris Lattner
de644c5e88
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
llvm-svn: 27090
2006-03-24 23:10:39 +00:00
Chris Lattner
1e4694ed84
fix inverted conditional
...
llvm-svn: 27089
2006-03-24 22:49:42 +00:00
Jim Laskey
37a8c245ce
D'oh - should be even numbered.
...
llvm-svn: 27088
2006-03-24 22:48:02 +00:00
Evan Cheng
33dad39b46
Added LDMXCSR
...
llvm-svn: 27087
2006-03-24 22:28:37 +00:00
Evan Cheng
83c1f2e316
ldmxcsr is a SSE instruction.
...
llvm-svn: 27086
2006-03-24 22:13:47 +00:00
Evan Cheng
b98a5e8507
Added ldmxcsr intrinsic.
...
llvm-svn: 27085
2006-03-24 22:10:59 +00:00
Chris Lattner
d054091a40
fix 80 column violations
...
llvm-svn: 27084
2006-03-24 21:52:20 +00:00
Chris Lattner
2d08e8aee1
plug the intrinsics into the patterns for movmsk*
...
llvm-svn: 27083
2006-03-24 21:49:18 +00:00
Chris Lattner
92a040dbbf
Parse intrinsics correctly and perform type propagation. This doesn't currently
...
emit the code to select intrinsics, but that is next :)
llvm-svn: 27082
2006-03-24 21:48:51 +00:00
Jim Laskey
1716e53341
Add dwarf register numbering to register data.
...
llvm-svn: 27081
2006-03-24 21:15:58 +00:00
Jim Laskey
d577317f38
Add support for dwarf register numbering.
...
llvm-svn: 27080
2006-03-24 21:13:21 +00:00
Jim Laskey
a39264632c
Hack no more.
...
llvm-svn: 27079
2006-03-24 21:10:36 +00:00
Chris Lattner
f91acdb005
Make sure to initialize the TheDef field!
...
llvm-svn: 27078
2006-03-24 20:25:01 +00:00
Chris Lattner
8840036091
add another note
...
llvm-svn: 27077
2006-03-24 20:04:27 +00:00
Chris Lattner
045f6bf0ef
add a note
...
llvm-svn: 27076
2006-03-24 19:59:17 +00:00
Chris Lattner
522211a435
Move CodeGenIntrinsic implementation to CodeGenTarget.cpp with the rest of
...
the CodeGen* implementations.
Parse the MVT::ValueType for each operand of the intrinsics.
llvm-svn: 27075
2006-03-24 19:49:31 +00:00
Chris Lattner
3be0858857
Specify the value type for each llvm type. This needs work for pointers.
...
llvm-svn: 27074
2006-03-24 19:41:10 +00:00
Chris Lattner
b979b51e39
Shuffle some includes around
...
llvm-svn: 27073
2006-03-24 18:52:35 +00:00
Chris Lattner
9c8fb73936
Pull in valuetypes.td here, we will use it shortly.
...
llvm-svn: 27072
2006-03-24 18:51:56 +00:00
Evan Cheng
ff1db97bca
Only to vector shuffle for {x,x,y,y} cases when SCALAR_TO_VECTOR is free.
...
llvm-svn: 27071
2006-03-24 18:45:20 +00:00
Chris Lattner
8e14f3544b
expose intrinsic info to the targets.
...
llvm-svn: 27070
2006-03-24 18:44:11 +00:00
Chris Lattner
21abff3712
Fix a bad JIT encoding of VPERM. Why is VPERM D,A,B,C but vfmadd is D,A,C,B ??
...
llvm-svn: 27069
2006-03-24 18:24:43 +00:00
Chris Lattner
3133dafd4b
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
llvm-svn: 27068
2006-03-24 17:58:06 +00:00
Chris Lattner
a9f9f0ce44
New testcase
...
llvm-svn: 27067
2006-03-24 17:57:24 +00:00
Jim Laskey
b4ff5c3e78
Tweak a comment.
...
llvm-svn: 27066
2006-03-24 16:18:42 +00:00
Jim Laskey
704b1e07a3
Fix indent.
...
llvm-svn: 27065
2006-03-24 10:08:23 +00:00
Jim Laskey
06c78bb995
Clean up some commentary.
...
llvm-svn: 27064
2006-03-24 10:00:56 +00:00
Jim Laskey
0d63725a26
Rename for truth in advertising.
...
llvm-svn: 27063
2006-03-24 09:50:27 +00:00
Jim Laskey
eb5bb57fe8
Fixed some grammer and spelling.
...
llvm-svn: 27062
2006-03-24 09:20:27 +00:00
Evan Cheng
de3a1b5f94
Zero vector testcase
...
llvm-svn: 27061
2006-03-24 08:02:50 +00:00
Chris Lattner
303dc30593
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.
llvm-svn: 27060
2006-03-24 07:53:47 +00:00
Chris Lattner
ba4966c16c
add support for using vxor to build zero vectors. This implements
...
Regression/CodeGen/PowerPC/vec_zero.ll
llvm-svn: 27059
2006-03-24 07:48:08 +00:00
Chris Lattner
9cc10794b1
new testcase
...
llvm-svn: 27058
2006-03-24 07:47:53 +00:00
Reid Spencer
fb9e34525e
Add a facility for invoking the llvm-config tool when linking a program.
...
This facility allows LLVMLIBS to be specified with something like:
LLVMLIBS = config --libs jit
instead of:
LLVMLIBS = JIT
with the same effect. However, the llvm-config utility is much more versatile
than the single keyword approach. Note that "config" is the keyword after
which any arguments to llvm-config are allowed. When llvm-config is tested
and working well, we'll start using this and drop support for the JIT
keyword.
llvm-svn: 27057
2006-03-24 07:36:57 +00:00
Evan Cheng
d58d54cf3e
Handle BUILD_VECTOR with all zero elements.
...
llvm-svn: 27056
2006-03-24 07:29:27 +00:00
Chris Lattner
62b04677c0
prefer to generate constant pool loads over splats. This prevents us from
...
using a splat for {1.0,1.0,1.0,1.0}
llvm-svn: 27055
2006-03-24 07:29:17 +00:00
Chris Lattner
a69d722c90
Fix a typo, thanks to Gabor Greif
...
llvm-svn: 27054
2006-03-24 07:16:10 +00:00
Chris Lattner
b2b32e9283
fix spello
...
llvm-svn: 27053
2006-03-24 07:15:07 +00:00
Chris Lattner
826dbd7173
Fix spello
...
llvm-svn: 27052
2006-03-24 07:14:34 +00:00