Justin Holewinski
707fd44038
PTX: Adjust rounding modes
...
* rounding modes for fp add, mul, sub now use .rn
* float -> int rounding correctly uses .rzi not .rni
* 32bit fdiv for sm13 uses div.rn (instead of div.approx)
* 32bit fdiv for sm10 now uses div (instead of div.approx)
Approx is not IEEE 754 compatible (and should be optionally set by a flag to the backend instead). The .rn rounding modifier is the PTX default anyway, but it's better to be explicit.
All these modifiers should be available by using __fmul_rz functions for example, but support will need to be added for this in the backend.
Patch by Dan Bailey
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133253 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-17 12:12:42 +00:00
Chris Lattner
d589099eec
make the asmparser reject function and type redefinitions. 'Merging' hasn't been
...
needed since llvm-gcc 3.4 days.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133248 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-17 07:06:44 +00:00
Chris Lattner
424545e950
remove asmparser support for the old getresult instruction, which has been subsumed by extractvalue.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133247 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-17 06:57:15 +00:00
Chris Lattner
437544f25c
remove parser support for the obsolete "multiple return values" syntax, which
...
was replaced with return of a "first class aggregate".
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133245 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-17 06:49:41 +00:00
Chris Lattner
6b7c89ee09
stop accepting begin/end around function bodies in the .ll parser, this isn't pascal anymore.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133244 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-17 06:42:57 +00:00
Chris Lattner
7a1b9bdd2b
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133242 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-17 06:36:20 +00:00
Chris Lattner
26b0000166
manually upgrade a bunch of tests to modern syntax, and remove some that
...
are either unreduced or only test old syntax.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133228 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-17 03:14:27 +00:00
Cameron Zwarich
cd4e0b593d
Update an insertion point iterator after replacing a return instruction with a
...
tail call pseudoinstruction. This fixes <rdar://problem/9624333>.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133227 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-17 02:16:43 +00:00
Jakob Stoklund Olesen
c02a6fa7d8
Don't use register classes larger than TLI->getRegClassFor(VT).
...
In Thumb mode we cannot handle GPR virtual registers, even though some
instructions can. When isel is lowering a CopyFromReg, it should limit
itself to subclasses of getRegClassFor(VT).
<rdar://problem/9624323>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133210 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-16 22:50:38 +00:00
Andrew Trick
dc9c76aca6
Added LLVM_BUILD_MODE to cmake so that lit supports tests with REQUIRES: {buildmode}.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133205 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-16 22:19:20 +00:00
Andrew Trick
c86f24c296
cmake may require LIT_TOOLS_DIR.
...
Reviewed by chapuni. Sorry for breaking.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133200 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-16 21:48:57 +00:00
Nick Lewycky
d61f84ee65
There's no need to be so picky about the particular register.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133189 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-16 21:00:00 +00:00
Dan Gohman
0860d0ba2f
Fix ARCOpt to insert releases on both successors of an invoke rather
...
than trying to insert them immediately after the invoke.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133188 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-16 20:57:14 +00:00
Galina Kistanova
240aa60665
Move test for appropriate directory.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133176 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-16 18:13:57 +00:00
Justin Holewinski
e0aef2de81
PTX: Finish new calling convention implementation
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133172 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-16 17:50:00 +00:00
Nick Lewycky
1e85ef645d
Add testcase for r133050 which added support for printing and parsing escaped
...
names for named metadata nodes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133166 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-16 17:14:38 +00:00
Bruno Cardoso Lopes
d381a7a91e
Add AVX suport for fpextend.
...
Original patch by Syoyo Fujita with more comments by me.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133153 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-16 07:03:21 +00:00
Eli Friedman
e8e1e4444b
FileCheck-ize test, and make it work on EABI hosts, like clang-native-arm-cortex-a9.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133139 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-16 02:36:32 +00:00
Eli Friedman
33b4f725ea
Force a triple here so this test doesn't fail on EABI hosts (like clang-native-arm-cortex-a9).
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133134 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-16 01:49:31 +00:00
Nick Lewycky
3cae396e03
Commit the right set of tests for r133124. Sorry 'bout that!
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133133 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-16 01:35:45 +00:00
Andrew Trick
9b91a88f1d
Reenabling this test with REQUIRES: Asserts
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133132 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-16 01:34:41 +00:00
Andrew Trick
05c087d893
Add support to lit for build mode requirements. e.g.
...
REQUIRES: Asserts
REQUIRES: Debug
This required chaining test configuration properties. It seems like a
generally good thing to do.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133131 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-16 01:33:35 +00:00
Chad Rosier
6fce128dd1
Typos.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133128 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-16 01:24:24 +00:00
Chad Rosier
689edc8b28
Revision r128665 added an optimization to make use of NEON multiplier
...
accumulator forwarding. Specifically (from SVN log entry):
Distribute (A + B) * C to (A * C) + (B * C) to make use of NEON multiplier
accumulator forwarding:
vadd d3, d0, d1
vmul d3, d3, d2
=>
vmul d3, d0, d2
vmla d3, d1, d2
Make sure it catches cases where operand 1 is add/fadd/sub/fsub, which was
intended in the original revision.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133127 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-16 01:21:54 +00:00
Nick Lewycky
c06b5bf340
Add a DAGCombine for (ext (binop (load x), cst)).
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133124 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-16 01:15:49 +00:00
Anna Zaks
589badd863
Rename the test. Thanks Cameron! Use shorter/generic names.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133115 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-16 00:34:10 +00:00
Anna Zaks
3c397eb741
Function::getNumBlockIDs() should be used instead of Function::size() to set the upper limit on the block IDs since basic blocks might get removed (simplified away) after being initially numbered. Plus the test case, in which SelectionDAGBuilder::visitBr() calls llvm::MachineFunction::removeFromMBBNumbering(), which introduces the hole in numbering leading to an assert in llc (prior to the fix).
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133113 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-16 00:03:21 +00:00
John McCall
9fbd318d36
The ARC language-specific optimizer. Credit to Dan Gohman.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133108 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-15 23:37:01 +00:00
Rafael Espindola
cff6193ebd
Testcase for previous commit.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133089 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-15 21:18:51 +00:00
John McCall
3a3465b71d
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133080 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-15 20:36:13 +00:00
Andrew Trick
2f473cee28
Disabling this test until I can figure out the right lit flags.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133068 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-15 18:25:38 +00:00
Jakob Stoklund Olesen
b79e30cc9e
Remove custom allocation orders in SystemZ.
...
Note that this actually changes code generation, and someone who
understands this target better should check the changes.
- R12Q is now allocatable. I think it was omitted from the allocation
order by mistake since it isn't reserved. It as apparently used as a
GOT pointer sometimes, and it should probably be reserved if that is
the case.
- The GR64 registers are allocated in a different order now. The
register allocator will automatically put the CSRs last. There were
other changes to the order that may have been significant.
The test fix is because r0 and r1 swapped places in the allocation order.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133067 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-15 18:02:56 +00:00
Evan Cheng
f60ceac9cd
Another revsh pattern. rdar://9609059
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133064 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-15 17:17:48 +00:00
Andrew Trick
4cb971ce1c
Added -stress-sched flag in the Asserts build.
...
Added a test case for handling physreg aliases during pre-RA-sched.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133063 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-15 17:16:12 +00:00
Chad Rosier
0e7f08bde5
TargetLoweringOpt is a struct used by DAGCombine, not a pass.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133062 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-15 16:48:02 +00:00
Nadav Rotem
6f2b85ddd4
This test was failing on X86 machines which do not have SSE4. Fixed the test by
...
specifying that the target CPU is corei7.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133053 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-15 12:26:53 +00:00
Bill Wendling
393c4047c0
Improve the heuristic to emit the alias if the number of hard-coded registers
...
are also greater than the alias.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133038 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-15 04:31:19 +00:00
Evan Cheng
bf188aeae7
PerformBFICombine - (bfi A, (and B, Mask1), Mask2) -> (bfi A, B, Mask2) iff
...
the bits being cleared by the AND are not demanded by the BFI.
The previous BFI dag combine rule was actually incorrect (or used to be
correct until BFI representation changed).
rdar://9609030
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133034 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-15 01:12:31 +00:00
Tanya Lattner
189531f317
Add an optimization that looks for a specific pair-wise add pattern and generates a vpaddl instruction instead of scalarizing the add.
...
Includes a test case.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133027 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-14 23:48:48 +00:00
Rafael Espindola
a6ad823675
Add triple.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133026 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-14 23:47:36 +00:00
Chad Rosier
92bcd96bbc
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>.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133022 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-14 22:29:10 +00:00
Rafael Espindola
1c61990b2d
Check the llc output.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133021 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-14 22:24:32 +00:00
Stuart Hastings
0ca7338083
Test case for x86 MMX inline asm. rdar://problem/8886707
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133014 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-14 21:51:38 +00:00
Rafael Espindola
29a3aa855e
Add a test for the recent regression.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133009 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-14 20:38:50 +00:00
Dan Gohman
1ae4168e36
This test is still failing. Delete the rest of it.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133001 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-14 18:07:36 +00:00
Dan Gohman
a3b9b007a8
Revert r132991. This test is failing on the
...
llvm-gcc-x86_64-linux-selfhost buildbot and others.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133000 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-14 18:03:11 +00:00
Rafael Espindola
f924dea8dd
Add 132986 back, but avoid non-determinism if a bb address gets reused.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132995 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-14 15:31:54 +00:00
Nadav Rotem
ebf69c34c4
Add a testcase for #9623
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132991 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-14 13:23:10 +00:00
Rafael Espindola
7a07083c25
revert 132986 to see if the bots go green.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132988 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-14 12:48:26 +00:00
Nadav Rotem
bfdbd00d9d
This testcase cause a failure on some bots. Remove the failing test until
...
further investigation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132986 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-14 09:10:37 +00:00