summaryrefslogtreecommitdiff
path: root/Makefile.rules
diff options
context:
space:
mode:
authorDale Johannesen <dalej@apple.com>2010-05-15 18:51:12 +0000
committerDale Johannesen <dalej@apple.com>2010-05-15 18:51:12 +0000
commit8d908ebd1926d00ff47d8284e52657705efb7f9b (patch)
tree6f99a9d91e94b814c44ca2a68df75f077046fa4b /Makefile.rules
parent789955127e06774b629e9db1cfa983184ceeda76 (diff)
downloadllvm-8d908ebd1926d00ff47d8284e52657705efb7f9b.tar.gz
llvm-8d908ebd1926d00ff47d8284e52657705efb7f9b.tar.bz2
llvm-8d908ebd1926d00ff47d8284e52657705efb7f9b.tar.xz
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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103883 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'Makefile.rules')
0 files changed, 0 insertions, 0 deletions