1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-24 19:52:54 +01:00
Commit Graph

75931 Commits

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