llvm-mirror/lib
Dale Johannesen 82dfdcdde7 Fix uint64->{float, double} conversion to do rounding correctly in 32-bit.
The implementation in LegalizeIntegerTypes to handle this as 
sint64->float + appropriate power of 2 is subject to double rounding,
considered incorrect by numerics people.  Use this implementation only
when it is safe.  This leads to using library calls in some cases
that produced inline code before, but it's correct now.
(EVTToAPFloatSemantics belongs somewhere else, any suggestions?)

Add a correctly rounding (though not particularly fast) conversion
that uses X87 80-bit computations for x86-32.

7885399, 5901940.  This shows up in gcc.c-torture/execute/ieee/rbug.c
in the gcc testsuite on some platforms.

llvm-svn: 103883
2010-05-15 18:51:12 +00:00
..
Analysis Add support to preserve type info for the variables that are removed by the optimizer. 2010-05-14 21:01:35 +00:00
Archive silence a warning, patch by "mike". 2010-04-25 04:44:26 +00:00
AsmParser Remove the API compatibility layer which converted add, sub, and mul 2010-05-03 22:44:19 +00:00
Bitcode
CodeGen Fix uint64->{float, double} conversion to do rounding correctly in 32-bit. 2010-05-15 18:51:12 +00:00
CompilerDriver
ExecutionEngine improve portability to systems that don't have powf/modf (e.g. solaris 9) 2010-05-15 17:10:24 +00:00
Linker
MC MC/Mach-O/x86_64: Darwin's special "signed_N" relocation types should only be 2010-05-14 18:53:40 +00:00
Support improve portability to systems that don't have round, patch by 2010-05-15 17:11:55 +00:00
System Add llvm::sys::RunInterruptHandlers(), which runs the registered SIGINT cleanup 2010-05-08 02:10:34 +00:00
Target Fix uint64->{float, double} conversion to do rounding correctly in 32-bit. 2010-05-15 18:51:12 +00:00
Transforms Teach the always inliner to release its inline cost estimates, like the basic 2010-05-15 04:26:25 +00:00
VMCore Adding a v8i64 512-bit vector type. This will be used to model ARM NEON intrinsics which translate into a pair of vld / vst instructions that can load / store 8 consecutive 64-bit (D) registers. 2010-05-13 23:55:47 +00:00
Makefile