1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-24 11:42:57 +01:00
Go to file
Bill Wendling 488a7187b4 When the visitSub method was split into visitSub and visitFSub, this xform was
added to the FSub version. However, the original version of this xform guarded
against doing this for floating point (!Op0->getType()->isFPOrFPVector()).

This is causing LLVM to perform incorrect xforms for code like:

void func(double *rhi, double *rlo, double xh, double xl, double yh, double yl){
  double mh, ml;
  double c = 134217729.0;
  double up, u1, u2, vp, v1, v2;
        
  up = xh*c;
  u1 = (xh - up) + up;
  u2 = xh - u1;
        
  vp = yh*c;
  v1 = (yh - vp) + vp;
  v2 = yh - v1;
        
  mh = xh*yh;
  ml = (((u1*v1 - mh) + (u1*v2)) + (u2*v1)) + (u2*v2);
  ml += xh*yl + xl*yh;
        
  *rhi = mh + ml;
  *rlo = (mh - (*rhi)) + ml;
}

The last line was optimized away, but rl is intended to be the difference
between the infinitely precise result of mh + ml and after it has been rounded
to double precision.

llvm-svn: 93369
2010-01-13 23:23:17 +00:00
autoconf Proper deduce z/System LLVM target from target triple when 2010-01-05 20:45:13 +00:00
bindings Fix another parallel make race condition. 2009-12-18 20:12:14 +00:00
cmake Update CMake LibDeps 2010-01-04 23:17:24 +00:00
docs Add documentation for llvm.dbg.value intrinsic 2010-01-11 22:53:48 +00:00
examples fix PR5649 by making fib use the JIT instead of the interpreter, patch by Perry Lorier! 2009-12-01 01:56:27 +00:00
include Add getSource() to SuccIterator 2010-01-13 22:21:43 +00:00
lib When the visitSub method was split into visitSub and visitFSub, this xform was 2010-01-13 23:23:17 +00:00
projects Move DataTypes.h to include/llvm/System, update all users. This breaks the last 2009-10-26 01:35:46 +00:00
runtime remove the random sampling framework, which is not maintained anymore. 2010-01-02 20:07:03 +00:00
test When the visitSub method was split into visitSub and visitFSub, this xform was 2010-01-13 23:23:17 +00:00
tools Reimplement getToken and SplitString as "StringRef helper functions" 2010-01-11 18:03:24 +00:00
unittests NamedMDNode is a collection MDNodes. 2010-01-05 20:41:31 +00:00
utils Reimplement getToken and SplitString as "StringRef helper functions" 2010-01-11 18:03:24 +00:00
website
Xcode Remove the IA-64 backend. 2009-07-24 00:30:09 +00:00
build-for-llvm-top.sh
CMakeLists.txt Fix CMake build for InstCombine changes 2010-01-04 21:58:55 +00:00
configure Regenerate 2010-01-05 20:45:43 +00:00
CREDITS.TXT Add myself to the blame list. 2009-08-20 15:20:15 +00:00
LICENSE.TXT 2010 is upon us. 2010-01-09 18:40:31 +00:00
llvm.spec.in * llvm.spec.in: update blurb 2007-07-13 09:48:29 +00:00
Makefile Update install-clang target for clang-cc removal. 2009-12-12 21:17:54 +00:00
Makefile.common
Makefile.config.in Fix typos. Thanks to John Tytgat for noticing it! 2009-12-07 00:27:35 +00:00
Makefile.rules Add the rest of the build system logic for optional target disassemblers 2009-11-25 04:46:58 +00:00
ModuleInfo.txt
README.txt First test commit 2009-10-05 22:29:11 +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.