LLVM backend for 6502
Go to file
Nate Begeman a07da92624 Use the new predicate support that Evan Cheng added to remove some code
from the DAGToDAG cpp file.  This adds pattern support for vector and
scalar fma, which passes test/Regression/CodeGen/PowerPC/fma.ll, and
does the right thing in the presence of -disable-excess-fp-precision.

Allows us to match:
void %foo(<4 x float> * %a) {
entry:
  %tmp1 = load <4 x float> * %a;
  %tmp2 = mul <4 x float> %tmp1, %tmp1
  %tmp3 = add <4 x float> %tmp2, %tmp1
  store <4 x float> %tmp3, <4 x float> *%a
  ret void
}

As:

_foo:
        li r2, 0
        lvx v0, r2, r3
        vmaddfp v0, v0, v0, v0
        stvx v0, r2, r3
        blr

Or, with llc -disable-excess-fp-precision,

_foo:
        li r2, 0
        lvx v0, r2, r3
        vxor v1, v1, v1
        vmaddfp v1, v0, v0, v1
        vaddfp v0, v1, v0
        stvx v0, r2, r3
        blr


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24719 91177308-0d34-0410-b5e6-96231b3b80d8
2005-12-14 22:54:33 +00:00
autoconf add malloc_zone_statistics, remove mstats 2005-11-14 07:24:17 +00:00
docs attribute((used)) is now supported 2005-12-05 05:23:06 +00:00
examples When a function takes a variable number of pointer arguments, with a zero 2005-10-23 04:37:20 +00:00
include/llvm Adjust the constructor to the Linker class to take an argument that names 2005-12-13 20:00:37 +00:00
lib Use the new predicate support that Evan Cheng added to remove some code 2005-12-14 22:54:33 +00:00
projects unbreak the build again 2005-10-27 16:30:44 +00:00
runtime Add the remove() function from the C library. 2005-11-28 15:49:15 +00:00
test Add a case for float just to make sure the patterns for both precisions 2005-12-14 22:51:13 +00:00
tools Fix printing of the instructions. 2005-12-14 22:01:07 +00:00
utils Added support to specify predicates. 2005-12-14 22:02:59 +00:00
win32 Teach Visual Studio about new files. 2005-11-28 06:46:36 +00:00
Xcode Remove the lowerconstantexprs pass 2005-10-29 05:34:40 +00:00
.cvsignore Ignore the configure.out file generated by "make reconfigure" 2005-06-18 23:01:25 +00:00
configure regenearte 2005-11-14 07:25:50 +00:00
CREDITS.TXT add Evan and Jim. Please edit your entries as desired. 2005-11-29 00:57:06 +00:00
LICENSE.TXT
llvm.spec Onward to LLVM-1.6 and beyond! 2005-05-18 20:23:20 +00:00
llvm.spec.in Onward to LLVM-1.6 and beyond! 2005-05-18 20:23:20 +00:00
Makefile For PR614: 2005-08-25 04:59:49 +00:00
Makefile.common
Makefile.config.in
Makefile.rules Move some constant folding code shared by Analysis and Transform passes 2005-10-27 15:54:34 +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.