1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-30 15:32:52 +01:00
Commit Graph

23528 Commits

Author SHA1 Message Date
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