aboutsummaryrefslogtreecommitdiffstats
path: root/test/CodeGen/X86
Commit message (Collapse)AuthorAgeFilesLines
* Strength reduction improvements.Dan Gohman2007-10-223-0/+68
| | | | | | | | | | | | | | | | | | | | | | | - Avoid attempting stride-reuse in the case that there are users that aren't addresses. In that case, there will be places where the multiplications won't be folded away, so it's better to try to strength-reduce them. - Several SSE intrinsics have operands that strength-reduction can treat as addresses. The previous item makes this more visible, as any non-address use of an IV can inhibit stride-reuse. - Make ValidStride aware of whether there's likely to be a base register in the address computation. This prevents it from thinking that things like stride 9 are valid on x86 when the base register is already occupied. Also, XFAIL the 2007-08-10-LEA16Use32.ll test; the new logic to avoid stride-reuse elimintes the LEA in the loop, so the test is no longer testing what it was intended to test. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43231 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix the folding of multiplication into addresses on x86, which was brokenDan Gohman2007-10-221-0/+30
| | | | | | | by the recent {U,S}MUL_LOHI changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43230 91177308-0d34-0410-b5e6-96231b3b80d8
* New test case.Evan Cheng2007-10-191-0/+84
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43193 91177308-0d34-0410-b5e6-96231b3b80d8
* Test byval with a 8 bit aligned structRafael Espindola2007-10-191-0/+28
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43173 91177308-0d34-0410-b5e6-96231b3b80d8
* Add support for byval function whose argument is not 32 bit aligned.Rafael Espindola2007-10-192-0/+29
| | | | | | | | | | | | | To do this it is necessary to add a "always inline" argument to the memcpy node. For completeness I have also added this node to memmove and memset. I have also added getMem* functions, because the extra argument makes it cumbersome to use getNode and because I get confused by it :-) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43172 91177308-0d34-0410-b5e6-96231b3b80d8
* Really fix PR1734. Carefully track which register uses are sub-register uses byEvan Cheng2007-10-181-0/+87
| | | | | | | traversing inverse register coalescing map. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43118 91177308-0d34-0410-b5e6-96231b3b80d8
* Add support for ISD::SELECT in SplitVectorOp.Dan Gohman2007-10-171-0/+7
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43072 91177308-0d34-0410-b5e6-96231b3b80d8
* Yet another test case for extract_subreg coalescing crash.Evan Cheng2007-10-171-0/+31
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43063 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix PR1734.Evan Cheng2007-10-161-0/+272
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43035 91177308-0d34-0410-b5e6-96231b3b80d8
* New test for svn rev 43033, radar 5538745.Dale Johannesen2007-10-161-0/+19
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43034 91177308-0d34-0410-b5e6-96231b3b80d8
* LowerFP_TO_SINT must not create a stack object if it's not needed.Evan Cheng2007-10-151-0/+18
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43004 91177308-0d34-0410-b5e6-96231b3b80d8
* Reapply the fix in 42908 for this file. This changes the function namesDan Gohman2007-10-151-6/+6
| | | | | | | from "test" to "foo" so that they don't match the grep -i ST. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43001 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix PR1729: watch out for val# with no def.Evan Cheng2007-10-151-0/+400
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42996 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix run line. Tanya Lattner2007-10-151-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42990 91177308-0d34-0410-b5e6-96231b3b80d8
* New test case.Evan Cheng2007-10-141-0/+28
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42963 91177308-0d34-0410-b5e6-96231b3b80d8
* Revert 42908 for now.Evan Cheng2007-10-143-8/+8
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42960 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix test case.Evan Cheng2007-10-131-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42949 91177308-0d34-0410-b5e6-96231b3b80d8
* New tests.Evan Cheng2007-10-132-0/+102
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42948 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix this test to not depend on the assembly output containing somethingDan Gohman2007-10-121-1/+1
| | | | | | | | that includes the string "st". This probably fixes the regression on Darwin. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42932 91177308-0d34-0410-b5e6-96231b3b80d8
* Change the names used for internal labels to use the currentDan Gohman2007-10-123-8/+8
| | | | | | | | | | function symbol name instead of a codegen-assigned function number. Thanks Evan! :-) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42908 91177308-0d34-0410-b5e6-96231b3b80d8
* Doh.Evan Cheng2007-10-121-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42901 91177308-0d34-0410-b5e6-96231b3b80d8
* EXTRACT_SUBREG test case.Evan Cheng2007-10-121-0/+35
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42900 91177308-0d34-0410-b5e6-96231b3b80d8
* Added missing -march=x86 flag.Arnold Schwaighofer2007-10-121-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42893 91177308-0d34-0410-b5e6-96231b3b80d8
* Add intrinsics for sin, cos, and pow. These use llvm_anyfloat_ty, and soDan Gohman2007-10-121-0/+27
| | | | | | | | may be overloaded with vector types. And add a testcase for codegen for these. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42885 91177308-0d34-0410-b5e6-96231b3b80d8
* Add an explicit target triple to make this test behave as expected onDan Gohman2007-10-111-1/+1
| | | | | | | non-Apple hosts. And use the count script instead of wc + grep. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42878 91177308-0d34-0410-b5e6-96231b3b80d8
* Added tail call optimization to the x86 back end. It can beArnold Schwaighofer2007-10-113-0/+35
| | | | | | | | | | | | enabled by passing -tailcallopt to llc. The optimization is performed if the following conditions are satisfied: * caller/callee are fastcc * elf/pic is disabled OR elf/pic enabled + callee is in module + callee has visibility protected or hidden git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42870 91177308-0d34-0410-b5e6-96231b3b80d8
* These two tests now require only two multiply instructions,Dan Gohman2007-10-092-0/+28
| | | | | | | instead of four. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42784 91177308-0d34-0410-b5e6-96231b3b80d8
* Update test.Evan Cheng2007-10-081-41/+40
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42775 91177308-0d34-0410-b5e6-96231b3b80d8
* These two tests now require only three multiply instructions,Dan Gohman2007-10-082-0/+12
| | | | | | | instead of four. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42765 91177308-0d34-0410-b5e6-96231b3b80d8
* Make test work on non-x86 hosts.Dale Johannesen2007-10-061-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42671 91177308-0d34-0410-b5e6-96231b3b80d8
* Test case for 3-address conversion.Evan Cheng2007-10-051-0/+32
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42664 91177308-0d34-0410-b5e6-96231b3b80d8
* Enable convertToThreeAddress for X86 by default.Evan Cheng2007-10-053-3/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42655 91177308-0d34-0410-b5e6-96231b3b80d8
* New test case.Evan Cheng2007-10-051-0/+20
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42628 91177308-0d34-0410-b5e6-96231b3b80d8
* -pre-RA-sched=none, simple, simple-noitin are gone.Evan Cheng2007-10-011-2/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42505 91177308-0d34-0410-b5e6-96231b3b80d8
* Teach SplitVectorOp how to split INSERT_VECTOR_ELT.Dan Gohman2007-09-281-0/+18
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42457 91177308-0d34-0410-b5e6-96231b3b80d8
* Refactor the memcpy lowering for the x86 target.Rafael Espindola2007-09-281-0/+17
| | | | | | | | | | The only generated code difference is that now we call memcpy when the size of the array is unknown. This matches GCC behavior and is better since the run time value can be arbitrarily large. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42433 91177308-0d34-0410-b5e6-96231b3b80d8
* Add sqrt and powi intrinsics for long double.Dale Johannesen2007-09-281-0/+47
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42423 91177308-0d34-0410-b5e6-96231b3b80d8
* Modernize fabs.ll, add long double. Add testsDale Johannesen2007-09-262-13/+68
| | | | | | | | for direct codegen of fsin/fcos. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42369 91177308-0d34-0410-b5e6-96231b3b80d8
* When both x/y and x%y are needed (x and y both scalar integer), computeDan Gohman2007-09-251-0/+58
| | | | | | | | | | both results with a single div or idiv instruction. This uses new X86ISD nodes for DIV and IDIV which are introduced during the legalize phase so that the SelectionDAG's CSE can automatically eliminate redundant computations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42308 91177308-0d34-0410-b5e6-96231b3b80d8
* Some tests for APFloat conversions.Dale Johannesen2007-09-252-0/+223
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42303 91177308-0d34-0410-b5e6-96231b3b80d8
* Forgot to check in the changes. Fix test case so it doesn't break with any ↵Evan Cheng2007-09-251-2/+2
| | | | | | scheduling changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42302 91177308-0d34-0410-b5e6-96231b3b80d8
* Use the correct result value type instead of using getValueType(0)Dan Gohman2007-09-241-0/+7
| | | | | | | | in ExpandEXTRACT_VECTOR_ELT and SplitVectorOp. This fixes an abort in the included testcase. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42264 91177308-0d34-0410-b5e6-96231b3b80d8
* Implementation of +sse -sse2 has changed; addDale Johannesen2007-09-231-2/+2
| | | | | | | -sse to preserve intent of this test. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42247 91177308-0d34-0410-b5e6-96231b3b80d8
* Don't add a default STACK_ALIGN (use the generic ABI alignment)Rafael Espindola2007-09-211-0/+1
| | | | | | | Implement calls to functions with byval arguments on X86 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42192 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix several more entries in the x86 reload/remat folding tables.Dan Gohman2007-09-201-0/+124
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42162 91177308-0d34-0410-b5e6-96231b3b80d8
* Clean up.Evan Cheng2007-09-181-215/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42112 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix a bogus splat xform:Evan Cheng2007-09-181-0/+244
| | | | | | | | | shuffle <undef, undef, x, undef>, <undef, undef, undef, undef>, <2, 2, 2, 2> != <undef, undef, x, undef> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42111 91177308-0d34-0410-b5e6-96231b3b80d8
* Objective-C was generating EH frame info like this:Bill Wendling2007-09-181-0/+65
| | | | | | | | | | "_-[NSString(local) isNullOrNil]".eh = 0 .no_dead_strip "_-[NSString(local) isNullOrNil]".eh The ".eh" should be inside the quotes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42074 91177308-0d34-0410-b5e6-96231b3b80d8
* Emit integer x<1 as x<=0, as comparisons with zero (now includeingDan Gohman2007-09-171-0/+7
| | | | | | | 64-bit) can use test instead of cmp with an immediate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42026 91177308-0d34-0410-b5e6-96231b3b80d8
* Use "test reg,reg" in place of "cmp reg,0" for 64-bit operands. This wasDan Gohman2007-09-171-0/+7
| | | | | | | previously only done for 32-bit and smaller operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42024 91177308-0d34-0410-b5e6-96231b3b80d8