mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-09-24 23:28:41 +00:00
Add APFloat::getExactInverse.
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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128545 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -353,6 +353,10 @@ namespace llvm {
|
||||
unsigned FormatPrecision = 0,
|
||||
unsigned FormatMaxPadding = 3) const;
|
||||
|
||||
/// getExactInverse - If this value has an exact multiplicative inverse,
|
||||
/// store it in inv and return true.
|
||||
bool getExactInverse(APFloat *inv) const;
|
||||
|
||||
private:
|
||||
|
||||
/* Trivial queries. */
|
||||
|
Reference in New Issue
Block a user