llvm-6502/lib/Transforms
Suyog Sarda 1dea0dc279 This patch recognizes (+ (+ v0, v1) (+ v2, v3)), reorders them for bundling into vector of loads,
and vectorizes it. 
 
 Test case :
 
       float hadd(float* a) {
           return (a[0] + a[1]) + (a[2] + a[3]);
        }
 
 
 AArch64 assembly before patch :
 
        ldp	s0, s1, [x0]
 	ldp	s2, s3, [x0, #8]
 	fadd	s0, s0, s1
 	fadd	s1, s2, s3
 	fadd	s0, s0, s1
 	ret
 
 AArch64 assembly after patch :
 
        ldp	d0, d1, [x0]
 	fadd	v0.2s, v0.2s, v1.2s
 	faddp	s0, v0.2s
 	ret

Reviewed Link : http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20141208/248531.html



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@224119 91177308-0d34-0410-b5e6-96231b3b80d8
2014-12-12 12:53:44 +00:00
..
Hello [CMake] Add LLVM_LINK_COMPONENTS to loadable modules, LLVMHello and BugpointPasses, on Win32. 2014-07-13 13:36:48 +00:00
InstCombine Fix another infinite loop in InstCombine 2014-12-12 04:34:07 +00:00
Instrumentation [ASan] Change fake stack and local variables handling. 2014-12-11 21:53:03 +00:00
IPO IR: Split Metadata from Value 2014-12-09 18:38:53 +00:00
ObjCARC IR: Split Metadata from Value 2014-12-09 18:38:53 +00:00
Scalar IR: Split Metadata from Value 2014-12-09 18:38:53 +00:00
Utils The inliner needs to fix up debug information for llvm.dbg.declare, not only for llvm.dbg.value. 2014-12-11 12:41:10 +00:00
Vectorize This patch recognizes (+ (+ v0, v1) (+ v2, v3)), reorders them for bundling into vector of loads, 2014-12-12 12:53:44 +00:00
CMakeLists.txt
LLVMBuild.txt
Makefile