llvm/test
Chris Lattner 9506c930aa When factoring multiply expressions across adds, factor both
positive and negative forms of constants together.  This 
allows us to compile:

int foo(int x, int y) {
    return (x-y) + (x-y) + (x-y);
}

into:

_foo:                                                       ## @foo
	subl	%esi, %edi
	leal	(%rdi,%rdi,2), %eax
	ret

instead of (where the 3 and -3 were not factored):

_foo:
        imull   $-3, 8(%esp), %ecx
        imull   $3, 4(%esp), %eax
        addl    %ecx, %eax
        ret

this started out as:
    movl    12(%ebp), %ecx
    imull   $3, 8(%ebp), %eax
    subl    %ecx, %eax
    subl    %ecx, %eax
    subl    %ecx, %eax
    ret

This comes from PR5359.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92381 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-01 01:13:15 +00:00
..
Analysis gvn is optimizing this better now. 2009-12-06 04:16:05 +00:00
Archive Merge Archive/extract* tests into one; this avoids a race when tests are run in 2009-09-08 23:44:24 +00:00
Assembler add some basic named MD tests. 2009-12-31 03:00:49 +00:00
Bindings/Ocaml Fix test/Bindings/Ocaml/vmcore.ml. When IRBuilder::CreateMalloc was removed, 2009-10-17 23:52:26 +00:00
Bitcode Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
BugPoint Use -output-prefix in bugpoint tests so that outputs go in temp directory (and 2009-09-07 19:26:18 +00:00
CodeGen Extern declaration for unordered.f32 libcall was not being emitted. Fixed that. 2009-12-29 03:24:34 +00:00
DebugInfo XFAIL on ppc-darwin. 2009-12-16 02:11:38 +00:00
ExecutionEngine Remove test. Execution tests are slow and generally not worth it. 2009-11-08 02:23:15 +00:00
Feature add bitcode reader support for blockaddress. We can now fully 2009-10-28 05:53:48 +00:00
FrontendAda Check that accessing a struct field that occurs before the start 2009-10-22 12:53:25 +00:00
FrontendC Test case for 90787. 2009-12-07 19:42:22 +00:00
FrontendC++ Testcase for llvm-gcc checkin 92108. 2009-12-24 01:10:43 +00:00
FrontendFortran
FrontendObjC Remove now-redundant llvm-as invocations. 2009-12-05 00:02:37 +00:00
FrontendObjC++
Integer Eliminate some Tclisms. 2009-09-05 11:34:46 +00:00
lib tests: Add llvm_supports_binding predicate. 2009-09-13 01:41:18 +00:00
Linker When a constant's type is refined, update the constant in place 2009-09-15 15:58:07 +00:00
LLVMC Remove an XFAIL. 2009-12-23 20:13:44 +00:00
MC specify a triple to use, fixing the test on non-x86-64 hosts. 2009-12-22 07:01:12 +00:00
Other Update these tests to match what Loop::print now prints. 2009-10-24 23:52:07 +00:00
Scripts Teach macho-dump to dump UUIDs. 2009-10-24 20:32:36 +00:00
TableGen Fix a bug in !subst where TableGen would go and resubstitute text it had 2009-12-21 21:21:34 +00:00
Transforms When factoring multiply expressions across adds, factor both 2010-01-01 01:13:15 +00:00
Unit CMake/lit: Add llvm_{unit_,}site_config parameters, and always pass them when running tests from the project files. 2009-12-08 19:47:36 +00:00
Verifier Remove obsolete -f flags. 2009-08-25 15:38:29 +00:00
CMakeLists.txt CMake/lit: Add llvm_{unit_,}site_config parameters, and always pass them when running tests from the project files. 2009-12-08 19:47:36 +00:00
lit.cfg CMake/lit: Add llvm_{unit_,}site_config parameters, and always pass them when running tests from the project files. 2009-12-08 19:47:36 +00:00
lit.site.cfg.in Generate lit.site.cfg from a .in file, as clang does. 2009-09-22 07:38:33 +00:00
Makefile Revert the test from r88984. It relies on being able to mmap 16GB of 2009-11-16 23:32:30 +00:00
Makefile.tests Remove obsolete -f flags. 2009-08-25 15:38:29 +00:00
site.exp.in Two small fixes for site.exp for cmake. 2009-11-08 09:29:52 +00:00
TestRunner.sh