llvm/llvm-project
Ver no GitHubbasic properties of floor and ceiling function
Open
#76.438 aberto em 27 de dez. de 2023
floating-pointgood first issuellvm:optimizationsmissed-optimization
Métricas do repositório
- Stars
- (26.378 stars)
- Métricas de merge de PR
- (Mesclagem média 1d 2h) (1.000 fundiu PRs em 30d)
Description
There are other formulas that hold, but I'll list the basic ones. https://alive2.llvm.org/ce/z/dQgZ84
If I understand correctly, these transformations require nnan flag.
Original functions:
#include <cmath>
bool src1(float x)
{
return std::floor(x) <= x;
}
bool src2(float x)
{
return x <= std::ceil(x);
}
bool src3(float x)
{
return std::ceil(x) == -std::floor(-x);
}
bool src4(float x)
{
return std::floor(x) == -std::ceil(-x);
}