Chris Lattner
9dc2d17ae6
Add new intrinsic node definitions for tblgen use
...
llvm-svn: 27100
2006-03-25 02:29:35 +00:00
Evan Cheng
80c00ca1e0
X86 SSE1 SIMD store intrinsics.
...
llvm-svn: 27099
2006-03-25 02:02:51 +00:00
Evan Cheng
b9f84acbbb
X86 SSE1 SIMD load intrinsics (movhps, movlps, and movups).
...
llvm-svn: 27098
2006-03-25 01:58:54 +00:00
Evan Cheng
19eb1e7536
X86 SSE1 conversion operations intrinsics.
...
llvm-svn: 27097
2006-03-25 01:35:17 +00:00
Evan Cheng
6f7d31ea50
Added 128-bit packed integer subtraction.
...
llvm-svn: 27096
2006-03-25 01:33:37 +00:00
Evan Cheng
8e481df625
Added CVTTPS2PI.
...
llvm-svn: 27095
2006-03-25 01:31:59 +00:00
Evan Cheng
980c4d5b46
Added CVTSS2SI.
...
llvm-svn: 27094
2006-03-25 01:00:18 +00:00
Evan Cheng
af448c4bc7
X86 SSE1 comparison intrinsics.
...
llvm-svn: 27093
2006-03-25 00:32:32 +00:00
Evan Cheng
515449f65e
X86 SSE1 arithmetic and logical operation intrinsics.
...
llvm-svn: 27092
2006-03-25 00:18:20 +00:00
Evan Cheng
e7ee6a5e32
Support for scalar to vector with zero extension.
...
llvm-svn: 27091
2006-03-24 23:15:12 +00:00
Chris Lattner
c8565ed651
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
313229c74b
fix inverted conditional
...
llvm-svn: 27089
2006-03-24 22:49:42 +00:00
Jim Laskey
bb84eae239
D'oh - should be even numbered.
...
llvm-svn: 27088
2006-03-24 22:48:02 +00:00
Evan Cheng
2f0277bf48
Added LDMXCSR
...
llvm-svn: 27087
2006-03-24 22:28:37 +00:00
Evan Cheng
9208974e2b
ldmxcsr is a SSE instruction.
...
llvm-svn: 27086
2006-03-24 22:13:47 +00:00
Evan Cheng
d3502698c3
Added ldmxcsr intrinsic.
...
llvm-svn: 27085
2006-03-24 22:10:59 +00:00
Chris Lattner
85586baee7
fix 80 column violations
...
llvm-svn: 27084
2006-03-24 21:52:20 +00:00
Chris Lattner
97599f1211
plug the intrinsics into the patterns for movmsk*
...
llvm-svn: 27083
2006-03-24 21:49:18 +00:00
Chris Lattner
e352e7aa85
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
f0729b4067
Add dwarf register numbering to register data.
...
llvm-svn: 27081
2006-03-24 21:15:58 +00:00
Jim Laskey
3b338d5566
Add support for dwarf register numbering.
...
llvm-svn: 27080
2006-03-24 21:13:21 +00:00
Jim Laskey
3324c7236f
Hack no more.
...
llvm-svn: 27079
2006-03-24 21:10:36 +00:00
Chris Lattner
bbba823706
Make sure to initialize the TheDef field!
...
llvm-svn: 27078
2006-03-24 20:25:01 +00:00
Chris Lattner
9f9b6116e1
add another note
...
llvm-svn: 27077
2006-03-24 20:04:27 +00:00
Chris Lattner
0affd76182
add a note
...
llvm-svn: 27076
2006-03-24 19:59:17 +00:00
Chris Lattner
2c58141fd9
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
926e206783
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
c6b13e21cc
Shuffle some includes around
...
llvm-svn: 27073
2006-03-24 18:52:35 +00:00
Chris Lattner
1607aa99e3
Pull in valuetypes.td here, we will use it shortly.
...
llvm-svn: 27072
2006-03-24 18:51:56 +00:00
Evan Cheng
68d9bf26c8
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
58a9622957
expose intrinsic info to the targets.
...
llvm-svn: 27070
2006-03-24 18:44:11 +00:00
Chris Lattner
d589dd1352
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
f2286d5917
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
c576661131
New testcase
...
llvm-svn: 27067
2006-03-24 17:57:24 +00:00
Jim Laskey
ea5c5c3c7c
Tweak a comment.
...
llvm-svn: 27066
2006-03-24 16:18:42 +00:00
Jim Laskey
dd3fa41f0f
Fix indent.
...
llvm-svn: 27065
2006-03-24 10:08:23 +00:00
Jim Laskey
864e444749
Clean up some commentary.
...
llvm-svn: 27064
2006-03-24 10:00:56 +00:00
Jim Laskey
53f1ecc560
Rename for truth in advertising.
...
llvm-svn: 27063
2006-03-24 09:50:27 +00:00
Jim Laskey
3481e12f63
Fixed some grammer and spelling.
...
llvm-svn: 27062
2006-03-24 09:20:27 +00:00
Evan Cheng
70848e8e56
Zero vector testcase
...
llvm-svn: 27061
2006-03-24 08:02:50 +00:00
Chris Lattner
a90b7141ed
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
ab882abce8
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
23fd653efd
new testcase
...
llvm-svn: 27058
2006-03-24 07:47:53 +00:00
Reid Spencer
d813b95fc3
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
082c8785ef
Handle BUILD_VECTOR with all zero elements.
...
llvm-svn: 27056
2006-03-24 07:29:27 +00:00
Chris Lattner
77e271cb4e
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
b40261ea2d
Fix a typo, thanks to Gabor Greif
...
llvm-svn: 27054
2006-03-24 07:16:10 +00:00
Chris Lattner
87b1dddb1c
fix spello
...
llvm-svn: 27053
2006-03-24 07:15:07 +00:00
Chris Lattner
f365f5f0c1
Fix spello
...
llvm-svn: 27052
2006-03-24 07:14:34 +00:00
Chris Lattner
5821a6a17a
add the actual cost to the debug info
...
llvm-svn: 27051
2006-03-24 07:14:00 +00:00