summaryrefslogtreecommitdiffstats
path: root/llvm/unittests/ADT/APFloatTest.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* [APFloat] Removed debugging cruft that snuck in.Michael Gottesman2013-06-261-4/+0
| | | | llvm-svn: 184974
* [APFloat] Removed trailing whitespace from unittests.Michael Gottesman2013-06-241-14/+14
| | | | llvm-svn: 184715
* [APFloat] Added a large unittest for APFloat.add that checks that special ↵Michael Gottesman2013-06-241-0/+302
| | | | | | values are computed correctly. llvm-svn: 184714
* [APFloat] Rename isIEEENormal => isNormal and remove old isNormal method.Michael Gottesman2013-06-201-7/+7
| | | | | | | | The old isNormal is already functionally replaced by the method isFiniteNonZero in r184350 and all references to said method were replaced in LLVM/clang in r184356/134366. llvm-svn: 184449
* [APFloat] Fix typo in test so we actually test if we handle denormals.Michael Gottesman2013-06-201-4/+4
| | | | llvm-svn: 184447
* [APFloat] Changed APFloat::isNormal => APFloat::isFiniteNonZero for all ↵Michael Gottesman2013-06-191-8/+8
| | | | | | | | tests in unittests. I forgot to to do this in r184356. The only references were in APFloatTest.cpp. llvm-svn: 184366
* [APFloat] Added isFiniteNonZero predicate.Michael Gottesman2013-06-191-0/+28
| | | | | | | | | | | | | | | | | This is the first patch in a series of patches to rename isNormal => isFiniteNonZero and isIEEENormal => isNormal. In order to prevent careless errors on my part the overall plan is: 1. Add the isFiniteNonZero predicate with tests. I can do this in a method independent of isNormal. (This step is this patch). 2. Convert all references to isNormal with isFiniteNonZero. My plan is to comment out isNormal locally and continually convert isNormal references => isFiniteNonZero until llvm/clang compiles. 3. Remove old isNormal and rename isIEEENormal to isNormal. 4. Look through all of said references from patch 2 and see if we can simplify them by using the new isNormal. llvm-svn: 184350
* IEEE-754R 5.7.2 General Operations is* operations (except for isCanonical).Michael Gottesman2013-06-041-0/+61
| | | | | | | | | | | | | | | Specifically the following work was done: 1. If the operation was not implemented, I implemented it. 2. If the operation was already implemented, I just moved its location in the APFloat header into the IEEE-754R 5.7.2 section. If the name was incorrect, I put in a comment giving the true IEEE-754R name. Also unittests have been added for all of the functions which did not already have a unittest. llvm-svn: 183179
* Try to avoid "integer literal too big" warnings from older GCCs.Benjamin Kramer2013-06-011-7/+7
| | | | llvm-svn: 183081
* [APFloat] Added a unittest for APFloat::getZero.Michael Gottesman2013-05-311-0/+37
| | | | llvm-svn: 183028
* Implement IEEE-754R 2008 nextUp/nextDown functions in the guise of the ↵Michael Gottesman2013-05-301-0/+420
| | | | | | | | function APFloat::next(bool nextDown). rdar://13852078 llvm-svn: 182945
* Added a unittest for APFloat::getSmallestNormalized.Michael Gottesman2013-05-301-0/+30
| | | | llvm-svn: 182897
* Added code to the unittest for APFloat::getSmallest to double check that we ↵Michael Gottesman2013-05-301-2/+6
| | | | | | | | | consider the result to be denormal. I additionally changed certain checks to use EXPECT_FALSE instead of a boolean complement with EXPECT_TRUE. llvm-svn: 182896
* Add a unittest for APFloat::getSmallest.Michael Gottesman2013-05-291-0/+26
| | | | llvm-svn: 182894
* Fix a bug that APFloat::fusedMultiplyAdd() mistakenly evaluate "14.5f * ↵Shuxin Yang2013-05-131-0/+23
| | | | | | -14.5f + 225.0f" to 225.0f. llvm-svn: 181715
* APFloat: Make sure that we get a well-formed x87 NaN when converting from a ↵Benjamin Kramer2013-01-251-0/+26
| | | | | | | | smaller type. Fixes PR15054. llvm-svn: 173459
* Implement APFloat::isDenormal()Shuxin Yang2013-01-071-0/+52
| | | | llvm-svn: 171764
* Sort the #include lines for unittest/...Chandler Carruth2012-12-041-4/+4
| | | | llvm-svn: 169250
* Drop the limitation to IEEE floating point types from the fdiv of pow2 -> ↵Benjamin Kramer2012-11-081-0/+6
| | | | | | | | fmul transform. This is safe for x87 long doubles and ppc double doubles too. llvm-svn: 167582
* Implement arithmetic on APFloat with PPCDoubleDouble semantics byUlrich Weigand2012-10-291-0/+36
| | | | | | | | | | | | treating it as if it were an IEEE floating-point type with 106-bit mantissa. This makes compile-time arithmetic on "long double" for PowerPC in clang (in particular parsing of floating point constants) work, and fixes all "long double" related failures in the test suite. llvm-svn: 166951
* APFloat::roundToIntegral: Special values don't keep the exponent value up to ↵Benjamin Kramer2012-09-261-0/+17
| | | | | | | | date, don't rely on it. Add a couple of unit tests for special floats. Fixes 13929, found by MemorySanitizer. llvm-svn: 164698
* Fix another roundToIntegral bug where very large values could become ↵Owen Anderson2012-08-151-1/+14
| | | | | | infinity. Problem and solution identified by Steve Canon. llvm-svn: 161969
* Fix a problem with APFloat::roundToIntegral where it would return incorrect ↵Owen Anderson2012-08-151-0/+30
| | | | | | results for negative inputs to trunc. Add unit tests to verify this behavior. llvm-svn: 161929
* Fix APFloat::convert so that it handles narrowing conversions correctly; itEli Friedman2011-11-261-0/+24
| | | | | | | | was returning incorrect values in rare cases, and incorrectly marking exact conversions as inexact in some more common cases. Fixes PR11406, and a missed optimization in test/CodeGen/X86/fp-stack-O0.ll. llvm-svn: 145141
* Attempt to fix MSVC build.Eli Friedman2011-10-121-2/+2
| | | | llvm-svn: 141831
* Fix APFloat::getLargest so that it actually returns the correct value. ↵Eli Friedman2011-10-121-0/+5
| | | | | | Found by accident while reviewing a patch to nearby code. llvm-svn: 141816
* Fix a test that wasn't testing the right thing.Matt Beaumont-Gay2011-08-291-4/+6
| | | | | | | | The APFloat "Zero" test was actually calling the APFloat(const fltSemantics &, integerPart) constructor, and EXPECT_EQ was treating 0 and -0 as equal. llvm-svn: 138745
* Add an APFloat::convertToInt(APSInt) function that automatically manages theJeffrey Yasskin2011-07-151-0/+49
| | | | | | memory for the result. llvm-svn: 135259
* Avoid turning a floating point division with a constant power of two into a ↵Benjamin Kramer2011-03-301-4/+2
| | | | | | | | | denormal multiplication. Some platforms may treat denormals as zero, on other platforms multiplication with a subnormal is slower than dividing by a normal. llvm-svn: 128555
* Add APFloat::getExactInverse.Benjamin Kramer2011-03-301-0/+23
| | | | | | | | | | | | | | The idea is, that if an ieee 754 float is divided by a power of two, we can turn the division into a cheaper multiplication. This function sees if we can get an exact multiplicative inverse for a divisor and returns it if possible. This is the hard part of PR9587. I tested many inputs against llvm-gcc's frotend implementation of this optimization and didn't find any difference. However, floating point is the land of weird edge cases, so any review would be appreciated. llvm-svn: 128545
* Fix death tests in -Asserts builds.Jeffrey Yasskin2010-03-171-0/+2
| | | | llvm-svn: 98701
* Teach APFloat how to create both QNaNs and SNaNs and with arbitrary-widthJohn McCall2010-02-281-0/+29
| | | | | | | | payloads. APFloat's internal folding routines always make QNaNs now, instead of sometimes making QNaNs and sometimes SNaNs depending on the type. llvm-svn: 97364
* Make APFloat's string-parsing routines a bit safer against very large exponents.John McCall2010-02-261-0/+7
| | | | llvm-svn: 97278
* Make APInt::countLeadingZerosSlowCase() treat the contents of padding bitsJohn McCall2010-02-031-0/+2
| | | | | | as undefined. Fixes an assertion in APFloat::toString noticed by Dale. llvm-svn: 95196
* Implement support for converting to string at "natural precision", and fix someJohn McCall2009-12-241-1/+3
| | | | | | major bugs in long-precision conversion. llvm-svn: 92150
* Add accessors for the largest-magnitude, smallest-magnitude, andJohn McCall2009-12-241-0/+20
| | | | | | | | smallest-normalized-magnitude values in a given FP semantics. Provide an APFloat-to-string conversion which I am quite ready to admit could be much more efficient. llvm-svn: 92126
* Add test for PR4873, which works for me.Daniel Dunbar2009-09-031-0/+8
| | | | llvm-svn: 80965
* Add support for including '+' in APFloat strings, more asserts,Erick Tryzelaar2009-08-201-51/+450
| | | | | | and many new unit tests. llvm-svn: 79574
* Fix two APFloat bugs in converting hexadecimal constants.Daniel Dunbar2009-08-201-0/+2
| | | | llvm-svn: 79540
* Wrap unit test death tests in GTEST_HAS_DEATH_TESTErick Tryzelaar2009-08-171-5/+7
| | | | llvm-svn: 79218
* Change APFloatTest from using ASSERTs to EXPECTsErick Tryzelaar2009-08-171-67/+67
| | | | llvm-svn: 79216
* Modify APFloat to take a StringRef instead of a c string.Erick Tryzelaar2009-08-161-0/+106
This also adds unit tests to APFloat that mainly tests the string handling of APFloat, but not much else of it's api. llvm-svn: 79210
OpenPOWER on IntegriCloud