Floor64 Challenge

This is a extension of the RTL function Floor. The output datatype is changed to Int64.

The objective is to build the fastest Floor function with Int64 output datatype.

There are three overloaded functions differing in the input datatype.

function Floor64(const X: Single): Int64; overload;
function Floor64(const X: Double): Int64; overload;
function Floor64(const X: Extended): Int64; overload;

Validation and Benchmark Tool
Tables of results


Target Function Author
P4 Northwood FloorExtendedJOH John O'Harrow
P4 Prescott FloorExtendedJOH John O'Harrow
Pentium M FloorExtendedJOH John O'Harrow
P3 FloorExtendedJOH John O'Harrow
Athlon XP FloorExtendedDKC1 Dennis Christensen
Opteron FloorExtendedJOH John O'Harrow
RTL Suggestion FloorExtendedJOH John O'Harrow
Pascal FloorExtendedDKCPas1 Dennis Christensen
Blended FloorExtendedJOH John O'Harrow


Target Function Author
P4 Northwood FloorDoubleJOH John O'Harrow
P4 Prescott FloorDoubleJOH John O'Harrow
Pentium M FloorDoubleJOH John O'Harrow
P3 FloorDoubleJOH John O'Harrow
Athlon XP FloorDoubleJOH John O'Harrow
Opteron FloorDoubleDKC1 Dennis Christensen
RTL Suggestion FloorDoubleJOH John O'Harrow
Pascal FloorDoubleDKCPas1 Dennis Christensen
Blended FloorDoubleJOH John O'Harrow


Target Function Author
P4 Northwood FloorSingleDKC1 Dennis Christensen
P4 Prescott FloorSingleDKC1 Dennis Christensen
Pentium M FloorSingleJOH John O'Harrow
P3 FloorSingleJOH John O'Harrow
Athlon XP FloorSingleDKC1 Dennis Christensen
Opteron FloorSingleDKC1 Dennis Christensen
RTL Suggestion FloorSingleJOH John O'Harrow
Pascal FloorSingleDKC1 Dennis Christensen
Blended FloorSingleJOH John O'Harrow