1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-24 03:33:20 +01:00
llvm-mirror/lib
Lang Hames 2082c9d610 [ADT] Fix PR20728 - Incorrect APFloat::fusedMultiplyAdd results for x86_fp80.
As detailed at http://llvm.org/PR20728, due to an internal overflow in
APFloat::multiplySignificand the APFloat::fusedMultiplyAdd method can return
incorrect results for x87DoubleExtended (x86_fp80) values. This commonly
manifests as incorrect constant folding of libm fmal calls on x86. E.g.

fmal(1.0L, 1.0L, 3.0L) == 0.0L      (should be 4.0L)

This patch fixes PR20728 by adding an extra bit to the significand for
intermediate results of APFloat::multiplySignificand, avoiding the overflow.

llvm-svn: 222374
2014-11-19 19:15:41 +00:00
..
Analysis AliasSetTracker: UnknownInsts should contribute to the refcount 2014-11-19 09:41:05 +00:00
AsmParser Update SetVector to rely on the underlying set's insert to return a pair<iterator, bool> 2014-11-19 07:49:26 +00:00
Bitcode Pass a reference to ValueEnumerator. 2014-11-17 20:06:27 +00:00
CodeGen [X86][SSE] pslldq/psrldq byte shifts/rotation for SSE2 2014-11-19 10:06:49 +00:00
DebugInfo [dwarfdump] Handle relocations in Dwarf accelerator tables 2014-11-14 19:30:08 +00:00
ExecutionEngine Fix covered switch warning 2014-11-18 01:26:46 +00:00
IR Update SetVector to rely on the underlying set's insert to return a pair<iterator, bool> 2014-11-19 07:49:26 +00:00
IRReader Remove unused variable. NFC. 2014-11-06 23:16:57 +00:00
LineEditor
Linker Update SetVector to rely on the underlying set's insert to return a pair<iterator, bool> 2014-11-19 07:49:26 +00:00
LTO Remove StringMap::GetOrCreateValue in favor of StringMap::insert 2014-11-19 05:49:42 +00:00
MC Remove StringMap::GetOrCreateValue in favor of StringMap::insert 2014-11-19 05:49:42 +00:00
Object llvm-readobj: fix off-by-one error in COFFDumper 2014-11-19 02:07:10 +00:00
Option
ProfileData llvm-cov: Sink some reporting logic into CoverageMapping 2014-11-14 01:50:32 +00:00
Support [ADT] Fix PR20728 - Incorrect APFloat::fusedMultiplyAdd results for x86_fp80. 2014-11-19 19:15:41 +00:00
TableGen
Target R600/SI: Make SIInstrInfo::isOperandLegal() more strict 2014-11-19 16:58:49 +00:00
Transforms Vectorize a reduction chain feeding into a 'return' statement. 2014-11-19 16:07:38 +00:00
CMakeLists.txt
LLVMBuild.txt
Makefile