llvm-6502/test
Bill Wendling 22f3b9faac 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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93369 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-13 23:23:17 +00:00
..
Analysis Use WriteAsOperand instead of getName() to print loop header names, 2010-01-09 18:17:45 +00:00
Archive
Assembler Re-add parsing of function-local metadata; this time with testcase. 2010-01-05 22:22:14 +00:00
Bindings/Ocaml
Bitcode
BugPoint
CodeGen this test requires SSE, thanks to jyasskin for pointing this out. 2010-01-13 21:51:41 +00:00
DebugInfo If a scope has only one instruction then first instruction is also the last instruction. 2010-01-05 16:59:17 +00:00
ExecutionEngine
Feature fix bogus test 2010-01-09 19:24:18 +00:00
FrontendAda
FrontendC This is testing a darwin specific feature, so only turn 2010-01-06 05:49:26 +00:00
FrontendC++ Testcase for llvm-gcc checkin 92108. 2009-12-24 01:10:43 +00:00
FrontendFortran
FrontendObjC
FrontendObjC++
Integer Delete useless trailing semicolons. 2010-01-05 17:55:26 +00:00
lib
Linker
LLVMC Remove an XFAIL. 2009-12-23 20:13:44 +00:00
MC specify a triple to use, fixing the test on non-x86-64 hosts. 2009-12-22 07:01:12 +00:00
Other fix bogus test 2010-01-09 19:24:49 +00:00
Scripts
TableGen Add an !eq() operator to TableGen. It operates on strings only. 2010-01-05 19:11:42 +00:00
Transforms When the visitSub method was split into visitSub and visitFSub, this xform was 2010-01-13 23:23:17 +00:00
Unit
Verifier Delete useless trailing semicolons. 2010-01-05 17:55:26 +00:00
CMakeLists.txt
lit.cfg
lit.site.cfg.in
Makefile
Makefile.tests
site.exp.in
TestRunner.sh