aboutsummaryrefslogtreecommitdiffstats
path: root/test/CodeGen/X86
Commit message (Collapse)AuthorAgeFilesLines
* 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
* Add support for functions with byval arguments on x86Rafael Espindola2007-09-141-1/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41953 91177308-0d34-0410-b5e6-96231b3b80d8
* Avoid storing and reloading zeros and other constants from stack slotsDan Gohman2007-09-071-0/+14
| | | | | | | by flagging the associated instructions as being trivially rematerializable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41775 91177308-0d34-0410-b5e6-96231b3b80d8
* Add support for having different alignment for objects on call frames.Rafael Espindola2007-09-071-0/+25
| | | | | | | | The x86-64 ABI states that objects passed on the stack have 8 byte alignment. Implement that. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41768 91177308-0d34-0410-b5e6-96231b3b80d8
* Split eh.select / eh.typeid.for intrinsics into i32/i64 versions. This is ↵Anton Korobeynikov2007-09-071-4/+4
| | | | | | | | | needed, because they just "mark" register liveins and we let frontend solve type issue, not lowering code :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41763 91177308-0d34-0410-b5e6-96231b3b80d8
* Proper handle case, when aliasee is external weak symbol referenced only by ↵Anton Korobeynikov2007-09-061-0/+4
| | | | | | | | | alias itself. Also, fix a case, when target doesn't have weak symbols supported. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41746 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix a bug in X86InstrInfo::convertToThreeAddress that caused it to codegen:Evan Cheng2007-09-061-0/+49
| | | | | | | | | leal (,%rcx,8), %rcx It should be leal (,%rcx,8), %ecx git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41735 91177308-0d34-0410-b5e6-96231b3b80d8
* Change all floating constants that are not exactlyDale Johannesen2007-09-054-6/+6
| | | | | | | representable to use hex format. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41722 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix for PR1632. EHSELECTION always produces a i32 value.Evan Cheng2007-09-041-0/+38
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41712 91177308-0d34-0410-b5e6-96231b3b80d8
* Initial support for calling functions with byval arguments on x86-64Rafael Espindola2007-08-311-0/+19
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41643 91177308-0d34-0410-b5e6-96231b3b80d8
* Update test case to reflect Dale's change.Evan Cheng2007-08-311-1/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41639 91177308-0d34-0410-b5e6-96231b3b80d8
* Do not run on darwin.Tanya Lattner2007-08-301-2/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41608 91177308-0d34-0410-b5e6-96231b3b80d8
* Added support to fold X86 load / store instructions. This allow ↵Evan Cheng2007-08-301-1/+2
| | | | | | rematerialized loads to be folded into their uses. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41599 91177308-0d34-0410-b5e6-96231b3b80d8
* Add explicit triples to avoid default behavior that varies by host.Dan Gohman2007-08-274-4/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41510 91177308-0d34-0410-b5e6-96231b3b80d8
* If the source and destination pointers in an llvm.memmove are knownDan Gohman2007-08-274-0/+36
| | | | | | | to not alias each other, it can be translated as an llvm.memcpy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41489 91177308-0d34-0410-b5e6-96231b3b80d8
* call libc memcpy/memset if array size is bigger then threshold.Rafael Espindola2007-08-271-14/+16
| | | | | | | | | Coping 100MB array (after a warmup) shows that glibc 2.6.1 implementation on x86-64 (core 2) is 30% faster (from 0.270917s to 0.188079s) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41479 91177308-0d34-0410-b5e6-96231b3b80d8
* Test dag xform: Fold C ? 0 : 1 to ~C or zext(~C) or trunc(~C)Evan Cheng2007-08-181-0/+25
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41164 91177308-0d34-0410-b5e6-96231b3b80d8
* New test. Make sure dynamic_stackalloc size is rounded up.Evan Cheng2007-08-161-0/+16
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41135 91177308-0d34-0410-b5e6-96231b3b80d8
* Update test: dynamic_stackalloc size *must* be rounded to ensure stack ptr ↵Evan Cheng2007-08-161-1/+8
| | | | | | be left in a valid state. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41134 91177308-0d34-0410-b5e6-96231b3b80d8
* add byval testRafael Espindola2007-08-161-0/+10
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41123 91177308-0d34-0410-b5e6-96231b3b80d8
* Convert tests using "grep -c ... | grep ..." to use the count script.Dan Gohman2007-08-151-3/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41100 91177308-0d34-0410-b5e6-96231b3b80d8
* Delete extraneous uses of wc -l.Dan Gohman2007-08-152-2/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41099 91177308-0d34-0410-b5e6-96231b3b80d8
* Convert another test to use the count script. This one didn't fit theDan Gohman2007-08-151-1/+1
| | | | | | | | regex used to convert all the others because the first '|' was on a separate line. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41098 91177308-0d34-0410-b5e6-96231b3b80d8
* Convert tests using "| wc -l | grep ..." to use the count script.Dan Gohman2007-08-1584-144/+144
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41097 91177308-0d34-0410-b5e6-96231b3b80d8
* tcl seems to hate |& for some reason.Chris Lattner2007-08-141-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41073 91177308-0d34-0410-b5e6-96231b3b80d8
* switch this to use fastcc to avoid fpstack traffic on x86-32. Switch to Chris Lattner2007-08-141-5/+5
| | | | | | | using the count script instead of wc -l git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41072 91177308-0d34-0410-b5e6-96231b3b80d8
* Update test case. A spill should now be deleted.Evan Cheng2007-08-141-1/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41070 91177308-0d34-0410-b5e6-96231b3b80d8
* Spiller reuse test case.Evan Cheng2007-08-141-0/+102
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41068 91177308-0d34-0410-b5e6-96231b3b80d8
* Now capable of rematerializing coalesced live intervals.Evan Cheng2007-08-132-0/+236
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41061 91177308-0d34-0410-b5e6-96231b3b80d8
* When x86 addresses matching exceeds its recursion limit, check toDan Gohman2007-08-131-0/+47
| | | | | | | | see if the base register is already occupied before assuming it can be used. This fixes bogus code generation in the accompanying testcase. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41049 91177308-0d34-0410-b5e6-96231b3b80d8