Old fork of llvm-mirror, used on older RPCS3 builds
Go to file
Chris Lattner a17f03980f teach scev to analyze X*4|1 like X*4+c. This allows us to produce:
LBB1_1: #bb
        movdqa (%esi), %xmm2
        movaps %xmm2, %xmm3
        punpcklbw %xmm0, %xmm3
        movaps %xmm3, %xmm4
        punpcklwd %xmm0, %xmm4
        cvtdq2ps %xmm4, %xmm4
        mulps %xmm1, %xmm4
        movaps %xmm4, (%edi)
        leal 1(,%eax,4), %ebx
        shll $4, %ebx
        punpckhwd %xmm0, %xmm3
        cvtdq2ps %xmm3, %xmm3
        mulps %xmm1, %xmm3
        movaps %xmm3, (%edx,%ebx)
        leal 2(,%eax,4), %ebx
        shll $4, %ebx
        punpckhbw %xmm0, %xmm2
        movaps %xmm2, %xmm3
        punpcklwd %xmm0, %xmm3
        cvtdq2ps %xmm3, %xmm3
        mulps %xmm1, %xmm3
        movaps %xmm3, (%edx,%ebx)
        leal 3(,%eax,4), %ebx
        shll $4, %ebx
        punpckhwd %xmm0, %xmm2
        cvtdq2ps %xmm2, %xmm2
        mulps %xmm1, %xmm2
        movaps %xmm2, (%edx,%ebx)
        addl $64, %edi
        incl %eax
        addl $16, %esi
        cmpl %ecx, %eax
        jne LBB1_1      #bb

instead of:

LBB1_1: #bb
        movdqa (%esi), %xmm2
        movaps %xmm2, %xmm3
        punpcklbw %xmm0, %xmm3
        movaps %xmm3, %xmm4
        punpcklwd %xmm0, %xmm4
        cvtdq2ps %xmm4, %xmm4
        mulps %xmm1, %xmm4
        movaps %xmm4, (%edi)
        leal 1(,%eax,4), %ebx
        shll $4, %ebx
        punpckhwd %xmm0, %xmm3
        cvtdq2ps %xmm3, %xmm3
        mulps %xmm1, %xmm3
        movaps %xmm3, (%edx,%ebx)
        leal 2(,%eax,4), %ebx
        shll $4, %ebx
        punpckhbw %xmm0, %xmm2
        movaps %xmm2, %xmm3
        punpcklwd %xmm0, %xmm3
        cvtdq2ps %xmm3, %xmm3
        mulps %xmm1, %xmm3
        movaps %xmm3, (%edx,%ebx)
        leal 3(,%eax,4), %ebx
        shll $4, %ebx
        punpckhwd %xmm0, %xmm2
        cvtdq2ps %xmm2, %xmm2
        mulps %xmm1, %xmm2
        movaps %xmm2, (%edx,%ebx)
        addl $64, %edi
        incl %eax
        addl $16, %esi
        cmpl %ecx, %eax
        jne LBB1_1      #bb

for a testcase.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32463 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-12 02:26:09 +00:00
autoconf Cleaned setjmp/longjmp lowering interfaces. Now we're producing right 2006-12-10 23:12:42 +00:00
docs Fixed some formatting. 2006-12-09 01:35:43 +00:00
examples Changed llvm_ostream et all to OStream. llvm_cerr, llvm_cout, llvm_null, are 2006-12-07 01:30:32 +00:00
include/llvm Implement getIntegerCast and getFPCast for ConstantExpr. These are similar 2006-12-12 00:51:07 +00:00
lib teach scev to analyze X*4|1 like X*4+c. This allows us to produce: 2006-12-12 02:26:09 +00:00
projects Changed llvm_ostream et all to OStream. llvm_cerr, llvm_cout, llvm_null, are 2006-12-07 01:30:32 +00:00
runtime Undo removal of the runtime libraries. While this may have been a bit 2006-11-17 03:32:33 +00:00
test use MVN to handle small negative constants 2006-12-12 01:03:11 +00:00
tools Generate the correct cast opcode for constant expressions. 2006-12-12 01:31:37 +00:00
utils Provide a script that can track down which optimization pass causes 2006-12-11 17:42:12 +00:00
win32 Unbreak VC++ build. 2006-12-02 02:22:01 +00:00
Xcode Try again. 2006-11-05 21:21:20 +00:00
.cvsignore
configure Regenerate. 2006-12-10 23:29:19 +00:00
CREDITS.TXT
LICENSE.TXT
llvm.spec.in
Makefile Undo removal of the runtime libraries. While this may have been a bit 2006-11-17 03:32:33 +00:00
Makefile.common
Makefile.config.in For PR739: 2006-12-10 04:09:19 +00:00
Makefile.rules Don't bother with setting the path before running llvm-gcc4, it doesn't 2006-12-10 04:56:38 +00:00
README.txt

Low Level Virtual Machine (LLVM)
================================

This directory and its subdirectories contain source code for the Low Level 
Virtual Machine, a toolkit for the construction of highly optimized compilers,
optimizers, and runtime environments. 

LLVM is open source software. You may freely distribute it under the terms of
the license agreement found in LICENSE.txt.

Please see the HTML documentation provided in docs/index.html for further
assistance with LLVM.