Chris Lattner
39ceb471b7
don't turn (A & (C0?-1:0)) | (B & ~(C0?-1:0)) -> C0 ? A : B
...
for vectors. Codegen is generating awful code or segfaulting
in various cases (e.g. PR6204).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95058 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-02 02:43:51 +00:00
Chris Lattner
8e76764de8
add one more bitfield optimization, allowing clang to generate
...
good code on PR4216:
_test_bitfield: ## @test_bitfield
orl $32962, %edi
movl $4294941946, %eax
andq %rdi, %rax
ret
instead of:
_test_bitfield:
movl $4294941696, %ecx
movl %edi, %eax
orl $194, %edi
orl $32768, %eax
andq $250, %rdi
andq %rax, %rcx
movq %rdi, %rax
orq %rcx, %rax
ret
Evan is looking into the remaining andq+imm -> andl optimization.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93147 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-11 06:55:24 +00:00
Chris Lattner
e4412c1f0b
implement an instcombine xform needed by clang's codegen
...
on the example in PR4216. This doesn't trigger in the testsuite,
so I'd really appreciate someone scrutinizing the logic for
correctness.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92458 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-04 06:03:59 +00:00
Nick Lewycky
f994bf00b5
Fix logic error in previous commit. The != case needs to become an or, not an
...
and.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92419 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-02 16:14:56 +00:00
Nick Lewycky
546d63176e
Optimize pointer comparison into the typesafe form, now that the backends will
...
handle them efficiently. This is the opposite direction of the transformation
we used to have here.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92418 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-02 15:25:44 +00:00
Chris Lattner
0b178e25c4
remove the instcombine transformations that are inserting nasty
...
pointer to int casts that confuse later optimizations. See PR3351
for details.
This improves but doesn't complete fix 483.xalancbmk because llvm-gcc
does this xform in GCC's "fold" routine as well. Clang++ will do
better I guess.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92408 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-02 00:31:05 +00:00
Chris Lattner
3f40e23392
Implement PR5634.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90046 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-29 00:51:17 +00:00
Chris Lattner
48b59ec817
reapply r85085 with a bugfix to avoid infinite looping.
...
All of the 'demorgan' related xforms need to use
dyn_castNotVal, not m_Not.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85119 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-26 15:40:07 +00:00
Evan Cheng
85def16079
Revert 85085. It causes infinite looping during llvm-gcc build.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85090 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-26 03:51:32 +00:00
Chris Lattner
863928fc39
Implement PR3266 & PR5276, folding:
...
not (or (icmp, icmp)) -> and(icmp, icmp)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85085 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-26 01:06:31 +00:00
Chris Lattner
f2b4854e3f
convert or.ll to filecheck and merge or2 into it.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85083 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-25 23:47:55 +00:00
Dan Gohman
f2f6ce65b7
Change tests from "opt %s" to "opt < %s" so that opt doesn't see the
...
input filename so that opt doesn't print the input filename in the
output so that grep lines in the tests don't unintentionally match
strings in the input filename.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81537 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-11 18:01:28 +00:00
Dan Gohman
3e054fe9ef
Use opt -S instead of piping bitcode output through llvm-dis.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81257 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-08 22:34:10 +00:00
Dan Gohman
b1e1e82c54
Change these tests to feed the assembly files to opt directly, instead
...
of using llvm-as, now that opt supports this.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81226 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-08 16:50:01 +00:00
Tanya Lattner
ec9a35a6f9
Remove llvm-upgrade and update test cases.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47793 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-01 09:15:35 +00:00
Reid Spencer
7c65d4345e
For PR1319:
...
Make use of the END. facility on all files > 1K so that we aren't wasting CPU
cycles searching for RUN: lines that we'll never find.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36059 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-15 07:38:21 +00:00
Reid Spencer
2b544beda3
For PR1319:
...
Upgrade tests to work with new llvm.exp version of llvm_runtest.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36013 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-14 20:13:02 +00:00
Reid Spencer
69ccadd753
Use the llvm-upgrade program to upgrade llvm assembly.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32115 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-02 04:23:10 +00:00
Chris Lattner
80e2065565
new testcase
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26384 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-26 19:55:30 +00:00
Chris Lattner
6261d766f9
tweaks
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26133 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-12 08:01:35 +00:00
Chris Lattner
1e122d1dc2
new testcase
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23375 91177308-0d34-0410-b5e6-96231b3b80d8
2005-09-18 03:39:02 +00:00
Chris Lattner
056ea904a7
new testcase
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21708 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-06 00:58:09 +00:00
Chris Lattner
0b948848eb
New testcase
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16560 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-28 22:31:49 +00:00
Misha Brukman
e78760e179
Renamed as' =>
llvm-as', dis' =>
llvm-dis', link' =>
llvm-link'.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8558 91177308-0d34-0410-b5e6-96231b3b80d8
2003-09-16 15:29:54 +00:00
Chris Lattner
c6da691cfe
New testcases
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7781 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-12 19:10:50 +00:00
Chris Lattner
12642fda09
More testcases, which I'll implement later
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7298 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-24 19:44:51 +00:00
Chris Lattner
b5874f1499
New testcase
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7296 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-24 19:31:08 +00:00
Chris Lattner
c2a2e73c7f
Renumber tests sequentially
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7280 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-23 21:11:56 +00:00
Chris Lattner
f8527989b5
Split the or and xor tests into two separate files
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7279 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-23 21:10:55 +00:00
Chris Lattner
2fc5e59362
Remove obscure test
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7278 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-23 21:06:34 +00:00
Chris Lattner
b5cfb6cb1a
New testcase
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7267 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-23 19:24:34 +00:00
Chris Lattner
0afcd442a1
New testcase
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7266 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-23 19:05:29 +00:00
Chris Lattner
31a7f85346
New testcases
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7263 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-23 18:28:42 +00:00
Chris Lattner
2b8e478b5d
New testcase
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7261 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-23 17:56:34 +00:00
Chris Lattner
347319a4c9
New testcase
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7259 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-23 17:25:55 +00:00
Chris Lattner
060c1f816c
Remove usage of grep-not script
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6966 91177308-0d34-0410-b5e6-96231b3b80d8
2003-06-28 23:32:04 +00:00
Chris Lattner
c6cab24151
Convert scripts from using explicit control flow to use the new grep-not script
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6955 91177308-0d34-0410-b5e6-96231b3b80d8
2003-06-28 22:44:42 +00:00
Chris Lattner
5feab1631f
Add new test for inverting branches
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6598 91177308-0d34-0410-b5e6-96231b3b80d8
2003-06-04 04:37:46 +00:00
Chris Lattner
be0fe12f72
Test limited reassociation
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5742 91177308-0d34-0410-b5e6-96231b3b80d8
2003-03-11 00:10:59 +00:00
Chris Lattner
8408add00a
Add optimizations:
...
- (A & C1)+(B & C2) -> (A & C1)|(B & C2) iff C1&C2 == 0
- (A & C1)^(B & C2) -> (A & C1)|(B & C2) iff C1&C2 == 0
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5741 91177308-0d34-0410-b5e6-96231b3b80d8
2003-03-10 23:52:54 +00:00
Chris Lattner
1b77300154
* Add testcases for associative operators
...
* Add testcase for or ubyte, 255 which was broken before
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5735 91177308-0d34-0410-b5e6-96231b3b80d8
2003-03-10 22:43:56 +00:00
Chris Lattner
63a9548591
Add test for: (A|B)^B == A & (~B)
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5727 91177308-0d34-0410-b5e6-96231b3b80d8
2003-03-10 18:24:04 +00:00
Chris Lattner
5640f33331
test for a variety of new transformations:
...
* A & ~A == 0
* A / (2^c) == A >> c if unsigned
* 0 / A == 0
* 1.0 * A == A
* A * (2^c) == A << c
* A ^ ~A == -1
* A | ~A == -1
* 0 % X = 0
* A % (2^c) == A & (c-1) if unsigned
* A - (A & B) == A & ~B
* -1 - A == ~A
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5588 91177308-0d34-0410-b5e6-96231b3b80d8
2003-02-18 19:28:47 +00:00
Chris Lattner
f63355327a
Modernize testcase
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5585 91177308-0d34-0410-b5e6-96231b3b80d8
2003-02-18 18:06:44 +00:00
Chris Lattner
2e217a7d96
This test was mistakenly matching 'predecessors' that the new asmwriter
...
spits out
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4068 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-08 16:09:47 +00:00
Chris Lattner
500888b7e8
Remove illegal test now that not instruction does not exist.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3312 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-14 17:44:00 +00:00
Chris Lattner
42dbd3044c
xor x, ALLONES should -> not x
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3285 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-09 23:34:39 +00:00
Chris Lattner
4a6e4b30b4
These tests should not run -dce pass to cleanup instcombine.
...
If instcombine is making dead instructions, ALL that should be used is -die
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3221 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-02 19:27:58 +00:00
Chris Lattner
829b79dd8c
More testcases I don't want to forget about
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2480 91177308-0d34-0410-b5e6-96231b3b80d8
2002-05-06 05:51:26 +00:00
Chris Lattner
33a90b18e0
New testcases so I don't forget about these algebraic simplifications
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2479 91177308-0d34-0410-b5e6-96231b3b80d8
2002-05-06 05:43:36 +00:00