Evan Cheng
|
dc9b5f5fc0
|
X86 integer register classes naming changes. Make them consistent with FP, vector classes.
llvm-svn: 28324
|
2006-05-16 07:21:53 +00:00 |
|
Chris Lattner
|
a03676690b
|
Teach the code generator to use cvtss2sd as extload f32 -> f64
llvm-svn: 28131
|
2006-05-05 21:35:18 +00:00 |
|
Evan Cheng
|
ef2fbe7460
|
Use movsd to shuffle in the lowest two elements of a v4f32 / v4i32 vector when
movlps cannot be used (e.g. when load from m64 has multiple uses).
llvm-svn: 28089
|
2006-05-03 20:32:03 +00:00 |
|
Evan Cheng
|
abc391a5a6
|
Fix a typo.
llvm-svn: 27968
|
2006-04-25 17:48:41 +00:00 |
|
Evan Cheng
|
7f0e30d1a2
|
Explicitly specify result type for def : Pat<> patterns (if it produces a vector
result). Otherwise tblgen will pick the default (v16i8 for 128-bit vector).
llvm-svn: 27965
|
2006-04-25 00:50:01 +00:00 |
|
Evan Cheng
|
e521de4e60
|
Added X86 SSE2 intrinsics which can be represented as vector_shuffles. This is
a temporary workaround for the 2-wide vector_shuffle problem (i.e. its mask
would have type v2i32 which is not legal).
llvm-svn: 27964
|
2006-04-24 23:34:56 +00:00 |
|
Evan Cheng
|
3306427d87
|
Some missing movlps, movhps, movlpd, and movhpd patterns.
llvm-svn: 27960
|
2006-04-24 21:58:20 +00:00 |
|
Evan Cheng
|
e0289de5ab
|
Now generating perfect (I think) code for "vector set" with a single non-zero
scalar value.
e.g.
_mm_set_epi32(0, a, 0, 0);
==>
movd 4(%esp), %xmm0
pshufd $69, %xmm0, %xmm0
_mm_set_epi8(0, 0, 0, 0, 0, a, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
==>
movzbw 4(%esp), %ax
movzwl %ax, %eax
pxor %xmm0, %xmm0
pinsrw $5, %eax, %xmm0
llvm-svn: 27923
|
2006-04-21 01:05:10 +00:00 |
|
Evan Cheng
|
7bbfc1d41a
|
Prefer {p}unpack* and mov*dup over {p}shuf* as well.
llvm-svn: 27844
|
2006-04-19 21:15:24 +00:00 |
|
Evan Cheng
|
a52eb1d7d5
|
- Renamed AddedCost to AddedComplexity.
- Added more movhlps and movlhps patterns.
llvm-svn: 27842
|
2006-04-19 20:37:34 +00:00 |
|
Evan Cheng
|
56e205e534
|
More mov{h|l}p{d|s} patterns.
llvm-svn: 27836
|
2006-04-19 18:20:17 +00:00 |
|
Evan Cheng
|
b42424177c
|
- More mov{h|l}ps patterns.
- Increase cost (complexity) of patterns which match mov{h|l}ps ops. These
are preferred over shufps in most cases.
llvm-svn: 27835
|
2006-04-19 18:11:52 +00:00 |
|
Evan Cheng
|
7364ee1c92
|
- PEXTRW cannot take a memory location as its first source operand.
- PINSRWrmi encoding bug.
llvm-svn: 27818
|
2006-04-18 21:59:43 +00:00 |
|
Evan Cheng
|
f16e4bf29d
|
Name change for clarity sake
llvm-svn: 27816
|
2006-04-18 21:55:35 +00:00 |
|
Evan Cheng
|
8e87e9b0db
|
Name change for clarity sake
llvm-svn: 27814
|
2006-04-18 21:29:50 +00:00 |
|
Evan Cheng
|
838f053b09
|
Left a pattern out
llvm-svn: 27813
|
2006-04-18 21:29:08 +00:00 |
|
Evan Cheng
|
2cd4e2d240
|
Fixed an encoding bug: movd from XMM to R32.
llvm-svn: 27807
|
2006-04-18 18:19:00 +00:00 |
|
Evan Cheng
|
98b1ca65dd
|
Use movss to insert_vector_elt(v, s, 0).
llvm-svn: 27782
|
2006-04-17 22:45:49 +00:00 |
|
Evan Cheng
|
833ce43152
|
Encoding bug
llvm-svn: 27773
|
2006-04-17 21:33:57 +00:00 |
|
Evan Cheng
|
3d26db8148
|
Errors in patterns preventing load folding
llvm-svn: 27762
|
2006-04-17 18:05:01 +00:00 |
|
Evan Cheng
|
68b2e5b4b0
|
movduprm, movshduprm bugs
llvm-svn: 27734
|
2006-04-16 18:11:28 +00:00 |
|
Evan Cheng
|
26d917789c
|
Encoding bugs
llvm-svn: 27733
|
2006-04-16 07:02:22 +00:00 |
|
Evan Cheng
|
9f33b2abc5
|
More encoding bugs
llvm-svn: 27722
|
2006-04-15 06:10:09 +00:00 |
|
Evan Cheng
|
87e0cd1569
|
pslldrm, psrawrm, etc. encoding bug
llvm-svn: 27721
|
2006-04-15 05:59:08 +00:00 |
|
Evan Cheng
|
4487cf8125
|
hsubp{s|d} encoding bug
llvm-svn: 27720
|
2006-04-15 05:52:42 +00:00 |
|
Evan Cheng
|
32e5d4f6bc
|
Silly bug
llvm-svn: 27719
|
2006-04-15 05:37:34 +00:00 |
|
Evan Cheng
|
c626c9bb00
|
Some clean up
llvm-svn: 27715
|
2006-04-14 23:32:40 +00:00 |
|
Evan Cheng
|
32c4470374
|
Last few SSE3 intrinsics.
llvm-svn: 27711
|
2006-04-14 21:59:03 +00:00 |
|
Evan Cheng
|
184264997e
|
Misc. SSE2 intrinsics: clflush, lfench, mfence
llvm-svn: 27699
|
2006-04-14 07:43:12 +00:00 |
|
Evan Cheng
|
360a73046f
|
pcmpeq* and pcmpgt* intrinsics.
llvm-svn: 27685
|
2006-04-14 01:39:53 +00:00 |
|
Evan Cheng
|
18a1a0e199
|
psll*, psrl*, and psra* intrinsics.
llvm-svn: 27684
|
2006-04-14 00:14:05 +00:00 |
|
Evan Cheng
|
f7645b0c49
|
Doh. PANDrm, etc. are not commutable.
llvm-svn: 27668
|
2006-04-13 18:11:28 +00:00 |
|
Evan Cheng
|
2de048bc69
|
psad, pmax, pmin intrinsics.
llvm-svn: 27647
|
2006-04-13 06:11:45 +00:00 |
|
Evan Cheng
|
93dcea2b5a
|
Various SSE2 packed integer intrinsics: pmulhuw, pavgw, etc.
llvm-svn: 27645
|
2006-04-13 05:24:54 +00:00 |
|
Evan Cheng
|
2f634fac6d
|
padds{b|w}, paddus{b|w}, psubs{b|w}, psubus{b|w} intrinsics.
llvm-svn: 27639
|
2006-04-13 00:43:35 +00:00 |
|
Evan Cheng
|
537bdb370c
|
Naming inconsistency.
llvm-svn: 27638
|
2006-04-13 00:00:23 +00:00 |
|
Evan Cheng
|
8768f25c80
|
SSE / SSE2 conversion intrinsics.
llvm-svn: 27637
|
2006-04-12 23:42:44 +00:00 |
|
Evan Cheng
|
2c2d734efd
|
All "integer" logical ops (pand, por, pxor) are now promoted to v2i64.
Clean up and fix various logical ops issues.
llvm-svn: 27633
|
2006-04-12 21:21:57 +00:00 |
|
Evan Cheng
|
66fb7beed7
|
Promote v4i32, v8i16, v16i8 load to v2i64 load.
llvm-svn: 27612
|
2006-04-12 17:12:36 +00:00 |
|
Evan Cheng
|
fbdf6ece4a
|
Various SSE2 conversion intrinsics
llvm-svn: 27603
|
2006-04-12 05:20:24 +00:00 |
|
Evan Cheng
|
68b885f50c
|
Added __builtin_ia32_storelv4si, __builtin_ia32_movqv4si,
__builtin_ia32_loadlv4si, __builtin_ia32_loaddqu, __builtin_ia32_storedqu.
llvm-svn: 27599
|
2006-04-11 22:28:25 +00:00 |
|
Evan Cheng
|
c0848b1eaf
|
gcc lower SSE prefetch into generic prefetch intrinsic. Need to add support
later.
llvm-svn: 27591
|
2006-04-11 18:04:57 +00:00 |
|
Evan Cheng
|
7a9fca11b5
|
Misc. intrinsics.
llvm-svn: 27590
|
2006-04-11 17:35:57 +00:00 |
|
Evan Cheng
|
798acd4094
|
movnt* and maskmovdqu intrinsics
llvm-svn: 27587
|
2006-04-11 06:57:30 +00:00 |
|
Evan Cheng
|
da283be867
|
Added support for _mm_move_ss and _mm_move_sd.
llvm-svn: 27575
|
2006-04-11 00:19:04 +00:00 |
|
Evan Cheng
|
b7ccf3b282
|
Remove some bogus patterns; clean up.
llvm-svn: 27569
|
2006-04-10 22:35:16 +00:00 |
|
Evan Cheng
|
983d251e3d
|
Added some missing shuffle patterns.
llvm-svn: 27564
|
2006-04-10 21:42:19 +00:00 |
|
Evan Cheng
|
352e751a9e
|
movups / movupd
llvm-svn: 27562
|
2006-04-10 21:11:06 +00:00 |
|
Evan Cheng
|
2b6c899eb2
|
Conditional move of vector types.
llvm-svn: 27556
|
2006-04-10 07:23:14 +00:00 |
|
Evan Cheng
|
0916c33201
|
ldmxcsr and stmxcsr.
llvm-svn: 27506
|
2006-04-08 00:47:44 +00:00 |
|