Nadav Rotem
cfc77bc719
When promoting integer vectors we often create ext-loads. This patch adds a
...
dag-combine optimization to implement the ext-load efficiently (using shuffles).
For example the type <4 x i8> is stored in memory as i32, but it needs to
find its way into a <4 x i32> register. Previously we scalarized the memory
access, now we use shuffles.
llvm-svn: 139995
2011-09-18 10:39:32 +00:00
Nadav Rotem
4d74f80219
white space cleanups
...
llvm-svn: 139994
2011-09-18 10:29:29 +00:00
Craig Topper
c5a97d12bb
Fix typo by changing Lower256IntVETCC to Lower256IntVSETCC.
...
llvm-svn: 139993
2011-09-18 08:03:58 +00:00
Benjamin Kramer
547157073b
Apply Duncan's test fix from r139986 to the avx version of that test too.
...
llvm-svn: 139992
2011-09-18 00:41:38 +00:00
Duncan Sands
4149334f09
Synthesize x86 max/min instructions also for vectors (i.e. produce
...
maxps and maxpd). This broke the sse41-blend.ll testcase by causing
maxpd to be produced rather than a cmp+blend pair, which is the reason
I tweaked it. Gives a small speedup on doduc with dragonegg when the
GCC vectorizer is used.
llvm-svn: 139986
2011-09-17 16:49:39 +00:00
Bruno Cardoso Lopes
f611f6c371
Describe more AVX 128-bit convert instructions without patterns to have
...
mayLoad = 1
llvm-svn: 139973
2011-09-16 23:41:29 +00:00
Owen Anderson
c1f638997d
Bitfield mask instructions are unpredictable if the encoded LSB is higher than the encoded MSB.
...
llvm-svn: 139972
2011-09-16 23:30:01 +00:00
Owen Anderson
df512e9961
Add a testcase for another corner-case decoding.
...
llvm-svn: 139970
2011-09-16 23:15:29 +00:00
Owen Anderson
aec67a3ea1
Fix bitfield decoding based on Eli's feedback.
...
llvm-svn: 139969
2011-09-16 23:04:48 +00:00
Ted Kremenek
484a96fab1
Add ImmutableMapRef and ImmutableSetRef, which consolidate Immutable[Map,Set] and its Factory. This may eventually replace Immtuable[Map,Set].
...
llvm-svn: 139967
2011-09-16 23:01:25 +00:00
Jim Grosbach
95242bff08
Thumb2 assembly parsing and encoding for SUB(immediate).
...
llvm-svn: 139966
2011-09-16 22:58:42 +00:00
Owen Anderson
5d23e1e5b4
Thumb2 pre-indexed loads/stores use the restricted GPR set for Rt.
...
llvm-svn: 139965
2011-09-16 22:42:36 +00:00
Owen Anderson
eae0eee720
Fix disassembly of Thumb2 BFI instructions with bit range of [0, 32).
...
llvm-svn: 139964
2011-09-16 22:29:48 +00:00
Jim Grosbach
3a58f722bf
Thumb2 assembly parsing and encoding for STRT.
...
llvm-svn: 139963
2011-09-16 22:27:12 +00:00
Jim Grosbach
41ece87fae
Thumb2 assembly parsing and encoding for LDRHT/STRHT.
...
llvm-svn: 139962
2011-09-16 22:26:01 +00:00
Jim Grosbach
e9f1da5dec
Thumb2 assembly parsing and encoding for STREX/STREXB/STREXH/STREXD.
...
llvm-svn: 139961
2011-09-16 22:22:07 +00:00
Jim Grosbach
f8313f60b3
Thumb2 assembly parsing and encoding for STRD.
...
llvm-svn: 139960
2011-09-16 22:19:38 +00:00
Jim Grosbach
d0ef17692a
Simplify comment. There's no Thumb LDRD(register) encoding. That's ARM only.
...
llvm-svn: 139959
2011-09-16 22:18:42 +00:00
Owen Anderson
3a487c8c9b
Add fixed bits to correctly distinguish Thumb2 SSAT/SSAT16's.
...
llvm-svn: 139958
2011-09-16 22:17:02 +00:00
Jim Grosbach
c3834c5da5
Thumb2 assembly parsing and encoding for STRBT.
...
llvm-svn: 139957
2011-09-16 22:15:51 +00:00
Jim Grosbach
3caa04dc32
Thumb2 assembly parsing and encoding for STRH.
...
llvm-svn: 139956
2011-09-16 22:12:19 +00:00
Jim Grosbach
771b6c5fe3
Remove test of undocumented format.
...
llvm-svn: 139955
2011-09-16 22:09:58 +00:00
Jim Grosbach
b181e68ab6
Thumb2 assembly parsing and encoding for STRB.
...
llvm-svn: 139954
2011-09-16 22:09:19 +00:00
Bruno Cardoso Lopes
396b8136bf
Add mayLoad attribute to AVX convert instructions, since non of them
...
are declared with load patterns. This fix the crash in PR10941. No testcases,
since a fold is triggered and then converted back to the register form
afterwards.
llvm-svn: 139953
2011-09-16 22:02:14 +00:00
Jim Grosbach
f75d317df4
Shuffle a few more thumb2 tests to match the comment headings.
...
llvm-svn: 139952
2011-09-16 22:01:18 +00:00
Jim Grosbach
bc84a55ed8
Thumb2 tests for STR(literal), STR(register) and STR pre/post indexed immediate.
...
llvm-svn: 139951
2011-09-16 21:59:13 +00:00
Jim Grosbach
c9eb37a7c9
Shuffle a few tests around.
...
llvm-svn: 139950
2011-09-16 21:57:10 +00:00
Jim Grosbach
d521731d40
Thumb2 assembly parsing and encoding for STR.
...
More addressing mode encoding bits. Handle pre increment for STR/STRB/STRH
and STR(register).
llvm-svn: 139949
2011-09-16 21:55:56 +00:00
Chad Rosier
01ea3b0adf
Add -rfunc and -rglob options to llvm-extract to support regular
...
expression matching.
llvm-svn: 139945
2011-09-16 21:09:17 +00:00
Jim Grosbach
371c88528b
Tidy up. 80 columns.
...
llvm-svn: 139944
2011-09-16 21:09:00 +00:00
Owen Anderson
5804085f26
Fix disassembly of Thumb2 LDRSH with a #-0 offset.
...
llvm-svn: 139943
2011-09-16 21:08:33 +00:00
Jim Grosbach
916a6c71aa
Thumb2 assembly parsing and encoding for STR(immediate).
...
Add aliases for STRB/STRH while there. Tests forthcoming for those.
llvm-svn: 139942
2011-09-16 21:06:12 +00:00
Jim Grosbach
03c39637ee
Thumb2 assembly parsing and encoding for STMDB.
...
llvm-svn: 139940
2011-09-16 20:58:38 +00:00
Bruno Cardoso Lopes
a60e62ad02
Fix PR10884.
...
This PR basically reports a problem where a crash in generated code
happened due to %rbp being clobbered:
pushq %rbp
movq %rsp, %rbp
....
vmovmskps %ymm12, %ebp
....
movq %rbp, %rsp
popq %rbp
ret
Since Eric's r123367 commit, the default stack alignment for x86 32-bit
has changed to be 16-bytes. Since then, the MaxStackAlignmentHeuristicPass
hasn't been really used, but with AVX it becomes useful again, since per
ABI compliance we don't always align the stack to 256-bit, but only when
there are 256-bit incoming arguments.
ReserveFP was only used by this pass, but there's no RA target hook that
uses getReserveFP() to check for the presence of FP (since nothing was
triggering the pass to run, the uses of getReserveFP() were removed
through time without being noticed). Change this pass to use
setForceFramePointer, which is properly called by MachineFunction
hasFP method.
The testcase is very big and dependent on RA, not sure if it's worth
adding to test/CodeGen/X86.
llvm-svn: 139939
2011-09-16 20:58:28 +00:00
Jim Grosbach
13af7198d5
Thumb2 assembly parsing and encoding for STMIA.
...
llvm-svn: 139938
2011-09-16 20:50:13 +00:00
Eric Christopher
381ec749e0
Move the AC_PROG_CC checks earlier in the configure file. The lateness
...
of the original check meant that configure was caching the default
CC check and using that instead of the result of AC_PROG_CC in both
configure checks and during compilation.
This wasn't affecting C++ so it was hard to notice.
Regenerate configure.
llvm-svn: 139937
2011-09-16 20:36:25 +00:00
Eric Christopher
2e1f5823a1
Migrate this to use clang by default as well.
...
llvm-svn: 139936
2011-09-16 20:36:22 +00:00
Eric Christopher
3163b0a2ce
We now look for clang, then llvm-gcc, then gcc as our compiler. We don't need
...
this anymore.
llvm-svn: 139935
2011-09-16 20:36:20 +00:00
Eric Christopher
b952f777b3
Have the llvm configure process look for clang, then llvm-gcc, and then gcc
...
on all platforms.
llvm-svn: 139934
2011-09-16 20:36:16 +00:00
Jim Grosbach
0c71c46758
Thumb2 assembly parsing and encoding for SSUB16/SSUB8.
...
llvm-svn: 139931
2011-09-16 18:52:36 +00:00
Jim Grosbach
47ff106753
Thumb2 assembly parsing and encoding for SSAX.
...
llvm-svn: 139929
2011-09-16 18:37:10 +00:00
Eli Friedman
de552b5c18
Fix a minor bug in fs::create_directories. Patch by Albert Wong.
...
llvm-svn: 139928
2011-09-16 18:36:31 +00:00
Jim Grosbach
eb47e416c2
Thumb2 assembly parsing and encoding for SSAT16.
...
llvm-svn: 139927
2011-09-16 18:33:22 +00:00
Jim Grosbach
6f6453f64b
Thumb2 assembly parsing and encoding for SSAT.
...
llvm-svn: 139926
2011-09-16 18:32:30 +00:00
Jim Grosbach
5a8b63fe51
Thumb2 assembly parsing and encoding for SRS.
...
llvm-svn: 139925
2011-09-16 18:25:22 +00:00
Jim Grosbach
3cac04dd75
Thumb2 assembly parsing and encoding for SMMUSD/SMUSDX.
...
llvm-svn: 139923
2011-09-16 18:08:48 +00:00
Jim Grosbach
b8b9febaa7
Thumb2 assembly parsing and encoding for SMMULWB/SMULWT.
...
llvm-svn: 139922
2011-09-16 18:07:18 +00:00
Jim Grosbach
0f1615c381
Thumb2 assembly parsing and encoding for SMMULL.
...
llvm-svn: 139921
2011-09-16 18:05:48 +00:00
Jim Grosbach
4c944a22e2
Fix comment.
...
llvm-svn: 139919
2011-09-16 18:03:00 +00:00
Jim Grosbach
f39a3fcb4f
Thumb2 assembly parsing and encoding for SMULBB/SMULBT/SMULTB/SMULTT.
...
llvm-svn: 139918
2011-09-16 18:02:36 +00:00