aboutsummaryrefslogtreecommitdiffstats
path: root/test/Transforms/InstCombine
Commit message (Collapse)AuthorAgeFilesLines
* Fix PR1800 by correcting mistaken logic.Chris Lattner2007-11-161-0/+10
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44188 91177308-0d34-0410-b5e6-96231b3b80d8
* Better checkAndrew Lenharth2007-11-081-1/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43897 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix PR1780Andrew Lenharth2007-11-081-0/+19
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43893 91177308-0d34-0410-b5e6-96231b3b80d8
* Implement PR1777 by detecting dependent phis thatChris Lattner2007-11-061-0/+31
| | | | | | | all compute the same value. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43777 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix an abort in instcombine when folding creates a vector rem instruction.Dan Gohman2007-11-051-0/+9
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43743 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix InstCombine/2007-10-31-StringCrash.ll by removing an obviousChris Lattner2007-11-011-0/+21
| | | | | | | (in hindsight) infinite recursion. Simplify the code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43597 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix InstCombine/2007-10-31-RangeCrash.llChris Lattner2007-11-011-0/+35
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43596 91177308-0d34-0410-b5e6-96231b3b80d8
* Add support for folding binary operators with vector zero operands.Dan Gohman2007-10-301-0/+35
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43510 91177308-0d34-0410-b5e6-96231b3b80d8
* update testcaseChris Lattner2007-10-291-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43452 91177308-0d34-0410-b5e6-96231b3b80d8
* Model stacksave and stackrestore as both writing memory, since we Chris Lattner2007-10-291-0/+47
| | | | | | | | don't model their dependences on allocas correctly. This fixes PR1745. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43442 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix PR1749 and InstCombine/2007-10-28-EmptyField.ll by handlingChris Lattner2007-10-291-0/+24
| | | | | | | zero-length fields better. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43427 91177308-0d34-0410-b5e6-96231b3b80d8
* Implement a couple of foldings for ordered and unordered comparisons,Chris Lattner2007-10-242-0/+24
| | | | | | | implementing cases related to PR1738. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43289 91177308-0d34-0410-b5e6-96231b3b80d8
* This test now passes.Devang Patel2007-10-191-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43183 91177308-0d34-0410-b5e6-96231b3b80d8
* XFAIL for now.Devang Patel2007-10-181-0/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43111 91177308-0d34-0410-b5e6-96231b3b80d8
* Apply "Instead of loading small c string constant, use integer constant ↵Devang Patel2007-10-171-0/+1
| | | | | | directly" transformation while processing load instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43070 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix a bug in my patch last night that broke InstCombine/2007-10-12-Crash.llChris Lattner2007-10-121-0/+38
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42920 91177308-0d34-0410-b5e6-96231b3b80d8
* testcase for PR1728Chris Lattner2007-10-121-0/+26
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42890 91177308-0d34-0410-b5e6-96231b3b80d8
* Lower memcpy if it makes sense.Devang Patel2007-10-111-0/+18
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42864 91177308-0d34-0410-b5e6-96231b3b80d8
* Testcase for PR1678.Duncan Sands2007-09-201-0/+14
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42171 91177308-0d34-0410-b5e6-96231b3b80d8
* Instcombine x-((x/y)*y) into a remainder operator.Dan Gohman2007-09-172-0/+16
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42035 91177308-0d34-0410-b5e6-96231b3b80d8
* Test that a call to a trampoline is turned into a call toDuncan Sands2007-09-111-0/+24
| | | | | | | the underlying nested function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41846 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix a buggy constant folding transformation when handling aliases.Chris Lattner2007-09-101-0/+13
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41818 91177308-0d34-0410-b5e6-96231b3b80d8
* Don't zap back to back volatile load/storesChris Lattner2007-09-071-0/+14
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41759 91177308-0d34-0410-b5e6-96231b3b80d8
* When the two operands of an icmp are equal, there are five possible predicatesNick Lewycky2007-09-061-0/+10
| | | | | | | that would make the icmp true. Fixes PR1637. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41740 91177308-0d34-0410-b5e6-96231b3b80d8
* Change all floating constants that are not exactlyDale Johannesen2007-09-051-1/+1
| | | | | | | representable to use hex format. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41722 91177308-0d34-0410-b5e6-96231b3b80d8
* Convert tests using "| wc -l | grep ..." to use the count script.Dan Gohman2007-08-1517-22/+22
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41097 91177308-0d34-0410-b5e6-96231b3b80d8
* oops, forgot to commit this.Chris Lattner2007-08-122-2/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41034 91177308-0d34-0410-b5e6-96231b3b80d8
* Transform a load from an undef/zero global into an undef/global even if weChris Lattner2007-08-111-0/+11
| | | | | | | | | | | | | | | | | | | | | | | | have complex pointer manipulation going on. This allows us to compile stuff like this: __m128i foo(__m128i x){ static const unsigned int c_0[4] = { 0, 0, 0, 0 }; __m128i v_Zero = _mm_loadu_si128((__m128i*)c_0); x = _mm_unpacklo_epi8(x, v_Zero); return x; } into: _foo: xorps %xmm1, %xmm1 punpcklbw %xmm1, %xmm0 ret git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41022 91177308-0d34-0410-b5e6-96231b3b80d8
* when we see a unaligned load from an insufficiently aligned global orChris Lattner2007-08-091-0/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | alloca, increase the alignment of the load, turning it into an aligned load. This allows us to compile: #include <xmmintrin.h> __m128i foo(__m128i x){ static const unsigned int c_0[4] = { 0, 0, 0, 0 }; __m128i v_Zero = _mm_loadu_si128((__m128i*)c_0); x = _mm_unpacklo_epi8(x, v_Zero); return x; } into: _foo: punpcklbw _c_0.5944, %xmm0 ret .data .lcomm _c_0.5944,16,4 # c_0.5944 instead of: _foo: movdqu _c_0.5944, %xmm1 punpcklbw %xmm1, %xmm0 ret .data .lcomm _c_0.5944,16,2 # c_0.5944 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40971 91177308-0d34-0410-b5e6-96231b3b80d8
* It's safe to fold not of fcmp.Nick Lewycky2007-08-061-0/+10
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40870 91177308-0d34-0410-b5e6-96231b3b80d8
* This is the patch to provide clean intrinsic function overloading support in ↵Chandler Carruth2007-08-041-6/+8
| | | | | | | | | LLVM. It cleans up the intrinsic definitions and generally smooths the process for more complicated intrinsic writing. It will be used by the upcoming atomic intrinsics as well as vector and float intrinsics in the future. This also changes the syntax for llvm.bswap, llvm.part.set, llvm.part.select, and llvm.ct* intrinsics. They are automatically upgraded by both the LLVM ASM reader and the bitcode reader. The test cases have been updated, with special tests added to ensure the automatic upgrading is supported. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40807 91177308-0d34-0410-b5e6-96231b3b80d8
* I don't have time to restore this functionality right now.Chris Lattner2007-08-021-0/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40743 91177308-0d34-0410-b5e6-96231b3b80d8
* Reduced testcase for PR1594Chris Lattner2007-08-021-0/+10
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40740 91177308-0d34-0410-b5e6-96231b3b80d8
* Enhance instcombine to be more aggressive about folding casts ofChris Lattner2007-08-021-0/+12
| | | | | | | operations of casts. This implements InstCombine/zext-fold.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40726 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix a bug in GetKnownAlignment of packed structs.Lauro Ramos Venancio2007-07-311-0/+27
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40649 91177308-0d34-0410-b5e6-96231b3b80d8
* This xform isn't safe, removing it.Chris Lattner2007-07-211-10/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40378 91177308-0d34-0410-b5e6-96231b3b80d8
* Optimize alignment of loads and stores.Dan Gohman2007-07-201-0/+66
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40102 91177308-0d34-0410-b5e6-96231b3b80d8
* It's not necessary to do rounding for alloca operations when the requestedDan Gohman2007-07-18200-0/+8216
alignment is equal to the stack alignment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40004 91177308-0d34-0410-b5e6-96231b3b80d8