Evan Cheng
4c0bd9629d
Teach dag combine to match halfword byteswap patterns.
...
1. (((x) & 0xFF00) >> 8) | (((x) & 0x00FF) << 8)
=> (bswap x) >> 16
2. ((x&0xff)<<8)|((x&0xff00)>>8)|((x&0xff000000)>>8)|((x&0x00ff0000)<<8))
=> (rotl (bswap x) 16)
This allows us to eliminate most of the def : Pat patterns for ARM rev16
revsh instructions. It catches many more cases for ARM and x86.
rdar://9609108
llvm-svn: 133503
2011-06-21 06:01:08 +00:00
Nick Lewycky
c7df192279
Emit movq for 64-bit register to XMM register moves, but continue to accept
...
movd when assembling.
llvm-svn: 133452
2011-06-20 18:33:26 +00:00
Nadav Rotem
d34ce4344b
Fix PromoteIntRes_TRUNCATE: Add support for cases where the
...
source vector type is to be split while the target vector is to be promoted.
(eg: <4 x i64> -> <4 x i8> )
llvm-svn: 133424
2011-06-20 07:15:58 +00:00
Benjamin Kramer
f3c6d6def5
Update test.
...
llvm-svn: 133390
2011-06-19 12:14:34 +00:00
Nadav Rotem
6d0036e259
Reduce the runtime of the test. Keep only the interesting cases.
...
llvm-svn: 133381
2011-06-19 08:12:43 +00:00
Chris Lattner
8936d2bfbc
Remove support for parsing the "type i32" syntax for defining a numbered
...
top level type without a specified number. This syntax isn't documented
and blocks forward progress.
llvm-svn: 133371
2011-06-19 00:03:46 +00:00
Chris Lattner
80ed9dc9e5
rip out a ton of intrinsic modernization logic from AutoUpgrade.cpp, which is
...
for pre-2.9 bitcode files. We keep x86 unaligned loads, movnt, crc32, and the
target indep prefetch change.
As usual, updating the testsuite is a PITA.
llvm-svn: 133337
2011-06-18 06:05:24 +00:00
Galina Kistanova
197ea52d4b
Moved to the right place.
...
llvm-svn: 133324
2011-06-18 00:59:37 +00:00
Eric Christopher
e4a1266a9a
Fix UMULO support for 2x register width to allow the full
...
range without a libcall to a new mulo<mode> libcall
that we'd have to create.
Finishes the rest of rdar://9090077 and rdar://9210061
llvm-svn: 133318
2011-06-18 00:09:57 +00:00
Nadav Rotem
ea7822685a
Fix a bug in the type-lowering of integer-promoted elements. Add a check that
...
the newly created simple type is valid before checking its legality.
Re-commit the test file.
llvm-svn: 133291
2011-06-17 20:54:12 +00:00
Eric Christopher
5bbb2bdb46
Lower multiply with overflow checking to __mulo<mode>
...
calls if we haven't been able to lower them any
other way.
Fixes rdar://9090077 and rdar://9210061
llvm-svn: 133288
2011-06-17 20:41:29 +00:00
Galina Kistanova
ac6bc75030
est 2008-06-04-indirectmem.ll is X86-specific. Move to X86 folder.
...
llvm-svn: 133275
2011-06-17 18:26:23 +00:00
Chris Lattner
6bc5c89093
Stop accepting and ignoring attributes in function types. Attributes are applied
...
to functions and call/invokes, not to types.
llvm-svn: 133266
2011-06-17 17:37:13 +00:00
Chris Lattner
5756c16cdf
make the asmparser reject function and type redefinitions. 'Merging' hasn't been
...
needed since llvm-gcc 3.4 days.
llvm-svn: 133248
2011-06-17 07:06:44 +00:00
Chris Lattner
59345c8b65
remove asmparser support for the old getresult instruction, which has been subsumed by extractvalue.
...
llvm-svn: 133247
2011-06-17 06:57:15 +00:00
Chris Lattner
33de427cd6
remove parser support for the obsolete "multiple return values" syntax, which
...
was replaced with return of a "first class aggregate".
llvm-svn: 133245
2011-06-17 06:49:41 +00:00
Chris Lattner
def1949c00
Remove support for using "foo" as symbols instead of %"foo". This is ancient
...
syntax and has been long obsolete. As usual, updating the tests is the nasty
part of this.
llvm-svn: 133242
2011-06-17 06:36:20 +00:00
Chris Lattner
b90ed2233c
manually upgrade a bunch of tests to modern syntax, and remove some that
...
are either unreduced or only test old syntax.
llvm-svn: 133228
2011-06-17 03:14:27 +00:00
Nick Lewycky
65c47187f2
There's no need to be so picky about the particular register.
...
llvm-svn: 133189
2011-06-16 21:00:00 +00:00
Bruno Cardoso Lopes
bbf2ab990f
Add AVX suport for fpextend.
...
Original patch by Syoyo Fujita with more comments by me.
llvm-svn: 133153
2011-06-16 07:03:21 +00:00
Nick Lewycky
27d604cbf3
Commit the right set of tests for r133124. Sorry 'bout that!
...
llvm-svn: 133133
2011-06-16 01:35:45 +00:00
Andrew Trick
41369d5e8a
Reenabling this test with REQUIRES: Asserts
...
llvm-svn: 133132
2011-06-16 01:34:41 +00:00
Nick Lewycky
6d677cfdd8
Add a DAGCombine for (ext (binop (load x), cst)).
...
llvm-svn: 133124
2011-06-16 01:15:49 +00:00
John McCall
4b7a8d68ae
Add a new function attribute, nonlazybind, which inhibits lazy-loading
...
optimizations when emitting calls to the function; instead those calls may
use faster relocations which require the function to be immediately resolved
upon loading the dynamic object featuring the call. This is useful when it
is known that the function will be called frequently and pervasively and
therefore there is no merit in delaying binding of the function.
Currently only implemented for x86-64, where it turns into a call through
the global offset table.
Patch by Dan Gohman, who assures me that he's going to add LangRef documentation
for this once it's committed.
llvm-svn: 133080
2011-06-15 20:36:13 +00:00
Andrew Trick
967d584a3a
Disabling this test until I can figure out the right lit flags.
...
llvm-svn: 133068
2011-06-15 18:25:38 +00:00
Andrew Trick
3013b6ae4a
Added -stress-sched flag in the Asserts build.
...
Added a test case for handling physreg aliases during pre-RA-sched.
llvm-svn: 133063
2011-06-15 17:16:12 +00:00
Chad Rosier
19a1f425a7
TargetLoweringOpt is a struct used by DAGCombine, not a pass.
...
llvm-svn: 133062
2011-06-15 16:48:02 +00:00
Nadav Rotem
24c6558865
This test was failing on X86 machines which do not have SSE4. Fixed the test by
...
specifying that the target CPU is corei7.
llvm-svn: 133053
2011-06-15 12:26:53 +00:00
Rafael Espindola
2efebb3610
Add triple.
...
llvm-svn: 133026
2011-06-14 23:47:36 +00:00
Chad Rosier
818e116723
When pattern matching during instruction selection make sure shl x,1 is not
...
converted to add x,x if x is a undef. add undef, undef does not guarantee
that the resulting low order bit is zero.
Fixes <rdar://problem/9453156> and <rdar://problem/9487392>.
llvm-svn: 133022
2011-06-14 22:29:10 +00:00
Rafael Espindola
1bf96ac607
Check the llc output.
...
llvm-svn: 133021
2011-06-14 22:24:32 +00:00
Stuart Hastings
f96281f4b7
Test case for x86 MMX inline asm. rdar://problem/8886707
...
llvm-svn: 133014
2011-06-14 21:51:38 +00:00
Rafael Espindola
761cee0785
Add a test for the recent regression.
...
llvm-svn: 133009
2011-06-14 20:38:50 +00:00
Dan Gohman
8355febbf4
This test is still failing. Delete the rest of it.
...
llvm-svn: 133001
2011-06-14 18:07:36 +00:00
Dan Gohman
92789eafe5
Revert r132991. This test is failing on the
...
llvm-gcc-x86_64-linux-selfhost buildbot and others.
llvm-svn: 133000
2011-06-14 18:03:11 +00:00
Rafael Espindola
3aeaf9e4c1
Add 132986 back, but avoid non-determinism if a bb address gets reused.
...
llvm-svn: 132995
2011-06-14 15:31:54 +00:00
Nadav Rotem
0e230bc7bb
Add a testcase for #9623
...
llvm-svn: 132991
2011-06-14 13:23:10 +00:00
Rafael Espindola
06ba7a68de
revert 132986 to see if the bots go green.
...
llvm-svn: 132988
2011-06-14 12:48:26 +00:00
Nadav Rotem
a0da74677e
This testcase cause a failure on some bots. Remove the failing test until
...
further investigation.
llvm-svn: 132986
2011-06-14 09:10:37 +00:00
Nadav Rotem
10193c830b
Add a testcase for checking the integer-promotion of many different vector
...
types (with power of two types such as 8,16,32 .. 512).
Fix a bug in the integer promotion of bitcast nodes. Enable integer expanding
only if the target of the conversion is an integer (when the type action is
scalarize).
Add handling to the legalization of vector load/store in cases where the saved
vector is integer-promoted.
llvm-svn: 132985
2011-06-14 08:11:52 +00:00
Bruno Cardoso Lopes
dc9ff3a4b1
Add one more argument to the prefetch intrinsic to indicate whether it's a data
...
or instruction cache access. Update the targets to match it and also teach
autoupgrade.
llvm-svn: 132976
2011-06-14 04:58:37 +00:00
Rafael Espindola
da24f2f8e1
Make the threshold used by branch folding softer. Before we would get a
...
sharp all or nothing transition when one extra predecessor was added. Now
we still test first ones for merging.
llvm-svn: 132974
2011-06-14 04:41:17 +00:00
Bill Wendling
e712449688
Heuristic: If the number of operands in the alias are more than the number of
...
operands in the aliasee, don't print the alias.
llvm-svn: 132963
2011-06-14 03:17:20 +00:00
Jakob Stoklund Olesen
fb03a92c33
Be less aggressive about hinting in RAFast.
...
In particular, don't spill dirty registers only to satisfy a hint. It is
not worth it.
The attached test case provides an example where the fast allocator
would spill a register when other registers are available.
llvm-svn: 132900
2011-06-13 03:26:46 +00:00
Rafael Espindola
2f3c2fe7c5
Really fix the fall-through logic.
...
Add a triple to the tests.
llvm-svn: 132885
2011-06-12 05:57:01 +00:00
Rafael Espindola
cb55e752ed
Test for the previous commit.
...
llvm-svn: 132884
2011-06-12 05:35:39 +00:00
Eli Friedman
cd2124a3f0
Add full x86 fast-isel support for memcpy and memset.
...
rdar://9431466
llvm-svn: 132864
2011-06-10 23:39:36 +00:00
Eli Friedman
82818e4d95
Add -mattr=+sse2 to make the buildbots happy.
...
llvm-svn: 132839
2011-06-10 08:26:26 +00:00
Chad Rosier
19d5253f60
Adding a test case for revision 132825.
...
llvm-svn: 132830
2011-06-10 02:44:19 +00:00
Eli Friedman
e3944cd825
Add a simple test which makes sure folding immediate float zero to a memory operand works.
...
llvm-svn: 132824
2011-06-10 00:30:08 +00:00