Old fork of llvm-mirror, used on older RPCS3 builds
Go to file
Nate Begeman 1cbf3abbb8 Next round of PPC CR optimizations. For the following code:
int %bar(float %a, float %b, float %c, float %d) {
entry:
    %tmp.1 = setlt float %a, %d
    %tmp.2 = setlt float %b, %d
    %or = or bool %tmp.1, %tmp.2
    %tmp.3 = setgt float %c, %d
    %tmp.4 = or bool %or, %tmp.3
    %tmp.5 = and bool %tmp.4, true
    %retval = cast bool %tmp.5 to int
    ret int %retval
}

We now emit:

_bar:
.LBB_bar_0:     ; entry
        fcmpu cr0, f1, f4
        fcmpu cr1, f2, f4
        cror 0, 0, 4
        fcmpu cr1, f3, f4
        cror 28, 0, 5
        mfcr r2
        rlwinm r3, r2, 29, 31, 31
        blr

Instead of:

_bar:
.LBB_bar_0:     ; entry
        fcmpu cr7, f1, f4
        mfcr r2
        rlwinm r2, r2, 29, 31, 31
        fcmpu cr7, f2, f4
        mfcr r3
        rlwinm r3, r3, 29, 31, 31
        or r2, r2, r3
        fcmpu cr7, f3, f4
        mfcr r3
        rlwinm r3, r3, 30, 31, 31
        or r3, r2, r3
        blr


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21321 91177308-0d34-0410-b5e6-96231b3b80d8
2005-04-18 07:48:09 +00:00
autoconf Recognize an IA64 when we see one 2005-03-17 20:56:22 +00:00
docs * Put command-line switches and function names in <tt> 2005-03-30 19:14:24 +00:00
examples add missing copyright header 2005-03-15 15:46:23 +00:00
include/llvm Make pattern isel default for ppc 2005-04-15 22:12:16 +00:00
lib Next round of PPC CR optimizations. For the following code: 2005-04-18 07:48:09 +00:00
projects Rename createPromoteMemoryToRegister() to 2005-03-28 02:01:12 +00:00
runtime Fix grammar 2005-03-23 21:14:33 +00:00
test Update dejagnu tests to use the new pattern isel flag 2005-04-16 04:25:48 +00:00
tools Ensure that the arguments passed to sys::Program::ExecuteAndWait include 2005-04-11 05:48:04 +00:00
utils spiff up the nightly tester output one more notch 2005-03-17 16:07:45 +00:00
win32 Add CondPropagate.cpp to VC++ Transforms project 2005-04-16 02:51:44 +00:00
.cvsignore Ignore the autom4te.cache directoy. 2004-12-24 15:11:23 +00:00
configure Recognize an IA64 when we see one 2005-03-17 20:56:22 +00:00
CREDITS.TXT Updating my entry. 2005-03-22 21:33:19 +00:00
LICENSE.TXT Another year, another copyright update. 2005-01-08 19:10:44 +00:00
llvm.spec Updated for 1.3. 2004-08-16 15:17:40 +00:00
llvm.spec.in Updated for 1.3. 2004-08-16 15:17:40 +00:00
Makefile Remove the check target. Its now in Makefile.rules 2004-12-06 05:35:00 +00:00
Makefile.common Update comments to reflect new variable names. Patch contributed by 2005-02-14 16:02:19 +00:00
Makefile.config.in For PR528: 2005-02-24 03:56:32 +00:00
Makefile.rules * Remove extraneous spaces 2005-03-11 04:15:18 +00:00
README.txt Make the text of this file a little more useful. 2004-09-02 22:49:27 +00:00

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.