1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-24 03:33:20 +01:00
llvm-mirror/test/Transforms
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
..
ABCD Revert my previous patch to ABCD and fix things the right way. There are two problems addressed 2009-11-09 00:44:44 +00:00
ADCE
ArgumentPromotion Make opt default to not adding a target data string and update tests that depend on target data to supply it within the test 2009-11-03 15:29:06 +00:00
BlockPlacement
BranchFolding
CodeExtractor
CodeGenPrepare
ConstantMerge
ConstProp fix PR5978 by peeling the loop so that we avoid shifting the 2010-01-08 19:02:23 +00:00
DeadArgElim Delete useless trailing semicolons. 2010-01-05 17:55:26 +00:00
DeadStoreElimination Delete useless trailing semicolons. 2010-01-05 17:55:26 +00:00
FunctionAttrs Fix a README item: have functionattrs look through selects and 2010-01-06 15:37:47 +00:00
GlobalDCE
GlobalOpt fix a globalopt crash on 'bullet' (handling evaluation of a store 2010-01-07 01:16:21 +00:00
GVN Delete useless trailing semicolons. 2010-01-05 17:55:26 +00:00
IndVarSimplify Use WriteAsOperand instead of getName() to print loop header names, 2010-01-09 18:17:45 +00:00
Inline Delete useless trailing semicolons. 2010-01-05 17:55:26 +00:00
InstCombine When the visitSub method was split into visitSub and visitFSub, this xform was 2010-01-13 23:23:17 +00:00
Internalize
IPConstantProp Delete useless trailing semicolons. 2010-01-05 17:55:26 +00:00
JumpThreading 1) Use the new SimplifyInstructionsInBlock routine instead of the copy 2010-01-12 20:41:47 +00:00
LCSSA Trim a bunch of unneeded code from this testcase. 2009-11-10 01:33:08 +00:00
LICM Remove dead debug info intrinsics. 2010-01-05 01:10:40 +00:00
LoopDeletion Make LoopDeletion check the maximum backedge taken count, rather than the 2009-10-23 17:10:01 +00:00
LoopIndexSplit Delete useless trailing semicolons. 2010-01-05 17:55:26 +00:00
LoopRotate Delete useless trailing semicolons. 2010-01-05 17:55:26 +00:00
LoopSimplify Make Loop::getLoopLatch() work on loops which don't have preheaders, as 2009-11-20 20:51:18 +00:00
LoopStrengthReduce Make several tests less fragile. 2010-01-12 04:52:47 +00:00
LoopUnroll Teach getSmallConstantTripMultiple about Shl operators. 2009-11-20 01:09:34 +00:00
LoopUnswitch Reverting patch in revision 89758, initial attempt at fixing PR5373 has proven to be bogus. 2009-11-25 05:38:41 +00:00
LowerInvoke
LowerSetJmp
LowerSwitch
Mem2Reg fix a bug exposed by moving SRoA earlier which caused a crash building kc++ 2009-11-02 04:37:17 +00:00
MemCpyOpt Make opt default to not adding a target data string and update tests that depend on target data to supply it within the test 2009-11-03 15:29:06 +00:00
MergeFunc
PruneEH Delete useless trailing semicolons. 2010-01-05 17:55:26 +00:00
Reassociate only factor from expressions whose uses are empty and whose 2010-01-09 06:01:36 +00:00
ScalarRepl Delete useless trailing semicolons. 2010-01-05 17:55:26 +00:00
SCCP fix a crash in SCCP handling extractvalue of an array, pointed out and 2009-11-10 22:02:09 +00:00
SimplifyCFG Delete useless trailing semicolons. 2010-01-05 17:55:26 +00:00
SimplifyLibCalls move an optimization for memcmp out of simplifylibcalls and into 2009-12-24 00:37:38 +00:00
SRETPromotion
SSI
StripSymbols
TailCallElim Delete useless trailing semicolons. 2010-01-05 17:55:26 +00:00
TailDup