aboutsummaryrefslogtreecommitdiffstats
path: root/test
Commit message (Collapse)AuthorAgeFilesLines
* Add support for encoding immediates in icmp and fcmp. Hopefully, this willChad Rosier2011-11-091-0/+214
| | | | | | | | remove a fair number of unnecessary materialized constants. rdar://10412592 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144163 91177308-0d34-0410-b5e6-96231b3b80d8
* Collapse DomainValues across loop back-edges.Jakob Stoklund Olesen2011-11-091-0/+45
| | | | | | | | | | | | | | During the initial RPO traversal of the basic blocks, remember the ones that are incomplete because of back-edges from predecessors that haven't been visited yet. After the initial RPO, revisit all those loop headers so the incoming DomainValues on the back-edges can be properly collapsed. This will properly fix execution domains on software pipelined code, like the included test case. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144151 91177308-0d34-0410-b5e6-96231b3b80d8
* Add a hack to the scheduler to disable pseudo-two-address dependencies inDan Gohman2011-11-082-7/+17
| | | | | | | | | | | basic blocks containing calls. This works around a problem in which these artificial dependencies can get tied up in calling seqeunce scheduling in a way that makes the graph unschedulable with the current approach of using artificial physical register dependencies for calling sequences. This fixes PR11314. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144124 91177308-0d34-0410-b5e6-96231b3b80d8
* Add workaround for Cortex-M3 errata 602117 by replacing ldrd x, y, [x] with ↵Evan Cheng2011-11-081-11/+12
| | | | | | ldm or ldr pairs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144123 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix code to match comment. Fixes PR11340, a regression from r143209.Eli Friedman2011-11-081-0/+10
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144121 91177308-0d34-0410-b5e6-96231b3b80d8
* LICM pass now understands invariant load metadata. Nothing generates this ↵Pete Cooper2011-11-081-0/+39
| | | | | | yet so it will currently never get used in real tests git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144107 91177308-0d34-0410-b5e6-96231b3b80d8
* Adding test for machine-licm operating on invariant load instructionsPete Cooper2011-11-081-0/+29
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144104 91177308-0d34-0410-b5e6-96231b3b80d8
* Lower mem-ops to unaligned i32/i16 load/stores on ARM where supported.Lang Hames2011-11-081-6/+9
| | | | | | | | | Add support for trimming constants to GetDemandedBits. This fixes some funky constant generation that occurs when stores are expanded for targets that don't support unaligned stores natively. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144102 91177308-0d34-0410-b5e6-96231b3b80d8
* test/CodeGen/X86/vec_shuffle-39.ll: Add explicit -mtriple=x86_64-linux. ↵NAKAMURA Takumi2011-11-081-1/+1
| | | | | | Passing packed value is not compatible on Win32 x64. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144068 91177308-0d34-0410-b5e6-96231b3b80d8
* test/CodeGen/X86/vec_shuffle-38.ll: Relax expression for Win32 x64.NAKAMURA Takumi2011-11-081-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144067 91177308-0d34-0410-b5e6-96231b3b80d8
* test/CodeGen/X86/vec_shuffle.ll: Add explicit -mtriple=i686-linux. We may ↵NAKAMURA Takumi2011-11-081-1/+1
| | | | | | see some suboptimal frame (%ebp) emission on certain hosts. Possible [PR11031] git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144066 91177308-0d34-0410-b5e6-96231b3b80d8
* Make sure to mark vector extload's as expand on ARM. Fixes PR11319.Eli Friedman2011-11-081-0/+15
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144057 91177308-0d34-0410-b5e6-96231b3b80d8
* Add a bunch of calls to RemoveDeadNode in LegalizeDAG, so legalization ↵Eli Friedman2011-11-081-0/+14
| | | | | | | | | | doesn't get confused by CSE later on. Fixes PR11318. Re-commit of r144034, with an extra fix so that RemoveDeadNode doesn't blow up. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144055 91177308-0d34-0410-b5e6-96231b3b80d8
* Add x86 isel logic and patterns to match movlps from clang generated IR for ↵Evan Cheng2011-11-082-2/+52
| | | | | | _mm_loadl_pi(). rdar://10134392, rdar://10050222 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144052 91177308-0d34-0410-b5e6-96231b3b80d8
* Convert to the new EH model.Bill Wendling2011-11-082-20/+15
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144050 91177308-0d34-0410-b5e6-96231b3b80d8
* Convert to the new EH model.Bill Wendling2011-11-083-28/+20
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144049 91177308-0d34-0410-b5e6-96231b3b80d8
* Convert tests to the new EH model.Bill Wendling2011-11-086-51/+29
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144048 91177308-0d34-0410-b5e6-96231b3b80d8
* Enable support for returning i1, i8, and i16. Nothing special todo as it's theChad Rosier2011-11-081-0/+15
| | | | | | | | | callee's responsibility to sign or zero-extend the return value. The additional test case just checks to make sure the calls are selected (i.e., -fast-isel-abort doesn't assert). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144047 91177308-0d34-0410-b5e6-96231b3b80d8
* Added missing newlinePete Cooper2011-11-081-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144046 91177308-0d34-0410-b5e6-96231b3b80d8
* Revert r144034 while I try to track down a crash.Eli Friedman2011-11-071-14/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144044 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix test for Windows as well.Jakob Stoklund Olesen2011-11-071-1/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144038 91177308-0d34-0410-b5e6-96231b3b80d8
* Kill and collapse outstanding DomainValues.Jakob Stoklund Olesen2011-11-077-23/+44
| | | | | | | | | | | | DomainValues that are only used by "don't care" instructions are now collapsed to the first possible execution domain after all basic blocks have been processed. This typically means the PS domain on x86. For example, the vsel_i64 and vsel_double functions in sse2-blend.ll are completely collapsed to the PS domain instead of containing a mix of execution domains created by isel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144037 91177308-0d34-0410-b5e6-96231b3b80d8
* InstCombine now optimizes vector udiv by power of 2 to shiftsPete Cooper2011-11-071-0/+15
| | | | | | | Fixes r8429 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144036 91177308-0d34-0410-b5e6-96231b3b80d8
* Add a bunch of calls to RemoveDeadNode in LegalizeDAG, so legalization ↵Eli Friedman2011-11-071-0/+14
| | | | | | doesn't get confused by CSE later on. Fixes PR11318. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144034 91177308-0d34-0410-b5e6-96231b3b80d8
* Simplify some uses of utohexstr.Benjamin Kramer2011-11-078-51/+51
| | | | | | As a side effect hex is printed lowercase instead of uppercase now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144013 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix test for Linux.Jakob Stoklund Olesen2011-11-071-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144003 91177308-0d34-0410-b5e6-96231b3b80d8
* Expand V_SET0 to xorps by default.Jakob Stoklund Olesen2011-11-077-10/+31
| | | | | | | | | The xorps instruction is smaller than pxor, so prefer that encoding. The ExecutionDepsFix pass will switch the encoding to pxor and xorpd when appropriate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143996 91177308-0d34-0410-b5e6-96231b3b80d8
* Add AVX2 variable shift instructions and intrinsics.Craig Topper2011-11-071-0/+80
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143915 91177308-0d34-0410-b5e6-96231b3b80d8
* Add AVX2 VPMOVMASK instructions and intrinsics.Craig Topper2011-11-071-0/+64
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143904 91177308-0d34-0410-b5e6-96231b3b80d8
* Add AVX2 VEXTRACTI128 and VINSERTI128 instructions. Fix VPERM2I128 to be ↵Craig Topper2011-11-071-0/+16
| | | | | | qualified with HasAVX2 instead of HasAVX. Mark VINSERTF128 and VEXTRACTF128 as never having side effects. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143902 91177308-0d34-0410-b5e6-96231b3b80d8
* More AVX2 instructions and their intrinsics.Craig Topper2011-11-061-0/+40
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143895 91177308-0d34-0410-b5e6-96231b3b80d8
* Add more AVX2 instructions and intrinsics.Craig Topper2011-11-061-0/+80
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143861 91177308-0d34-0410-b5e6-96231b3b80d8
* Add support for passing i1, i8, and i16 call parameters. Also, be sure toChad Rosier2011-11-051-0/+67
| | | | | | | | zero-extend the constant integer encoding. Test case provides testing for both call parameters and materialization of i1, i8, and i16 types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143821 91177308-0d34-0410-b5e6-96231b3b80d8
* Update lit's list of tools.Benjamin Kramer2011-11-051-4/+6
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143815 91177308-0d34-0410-b5e6-96231b3b80d8
* Add an option to pad an uleb128 to MCObjectWriter and remove the uleb128 ↵Benjamin Kramer2011-11-053-7/+4
| | | | | | | | encoding from the DWARF asm printer. As a side effect we now print dwarf ulebs with .ascii directives. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143809 91177308-0d34-0410-b5e6-96231b3b80d8
* Do simple cross-block DSE when we encounter a free statement. Fixes PR11240.Nick Lewycky2011-11-051-4/+22
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143808 91177308-0d34-0410-b5e6-96231b3b80d8
* Enhanced vzeroupper insertion pass that avoids inserting vzeroupper where it ↵Eli Friedman2011-11-041-13/+70
| | | | | | | | | | is unnecessary through local analysis. Patch from Bruno Cardoso Lopes, with some additional changes. I'm going to wait for any review comments and perform some additional testing before turning this on by default. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143750 91177308-0d34-0410-b5e6-96231b3b80d8
* build/cmake: Change to require Python be available.Daniel Dunbar2011-11-041-51/+47
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143742 91177308-0d34-0410-b5e6-96231b3b80d8
* Add triple to test.Rafael Espindola2011-11-041-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143735 91177308-0d34-0410-b5e6-96231b3b80d8
* Emit declarations before definitions if they are available. This causes ↵Rafael Espindola2011-11-041-0/+65
| | | | | | | | DW_AT_specification to point back in the file in the included testcase. Fixes PR11300. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143726 91177308-0d34-0410-b5e6-96231b3b80d8
* Add tests for existing InstSimplify features.Dan Gohman2011-11-041-0/+21
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143721 91177308-0d34-0410-b5e6-96231b3b80d8
* Teach instsimplify to simplify calls to undef.Dan Gohman2011-11-041-0/+7
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143719 91177308-0d34-0410-b5e6-96231b3b80d8
* Add intrinsics for X86 vcvtps2ph and vcvtph2ps instructionsCraig Topper2011-11-041-0/+32
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143682 91177308-0d34-0410-b5e6-96231b3b80d8
* Add fast-isel support for returning i1, i8, and i16.Chad Rosier2011-11-041-0/+48
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143669 91177308-0d34-0410-b5e6-96231b3b80d8
* Speculatively revert "DeadStoreElimination can now trim the size of a store ifDaniel Dunbar2011-11-041-78/+0
| | | | | | the end of it is dead.", which appears to break bootstrapping LLVM. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143668 91177308-0d34-0410-b5e6-96231b3b80d8
* Reapply r143206, with fixes. Disallow physical register lifetimesDan Gohman2011-11-0311-29/+67
| | | | | | | | across calls, and only check for nested dependences on the special call-sequence-resource register. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143660 91177308-0d34-0410-b5e6-96231b3b80d8
* Reverted r143600 - selector reference changePete Cooper2011-11-031-30/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143646 91177308-0d34-0410-b5e6-96231b3b80d8
* fixed global array handling for ptx to use the correct bit widthsDan Bailey2011-11-032-30/+30
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143640 91177308-0d34-0410-b5e6-96231b3b80d8
* DeadStoreElimination can now trim the size of a store if the end of it is dead.Pete Cooper2011-11-031-0/+78
| | | | | | | | | | | Only currently done if the later store is writing to a power of 2 address or has the same alignment as the earlier store as then its likely to not break up large stores into smaller ones Fixes <rdar://problem/10140300> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143630 91177308-0d34-0410-b5e6-96231b3b80d8
* Add new X86 AVX2 VBROADCAST instructions.Craig Topper2011-11-032-6/+29
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143612 91177308-0d34-0410-b5e6-96231b3b80d8