Added floating point negation coverage (#2647)

Fixes #2119
This commit is contained in:
Marcin Hajder 2026-05-05 18:19:31 +02:00 committed by GitHub
parent bd70f3e1e8
commit 3efb909010
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 8 additions and 0 deletions

View file

@ -426,6 +426,7 @@ const Func functionList[] = {
// basic operations
OPERATOR_ENTRY(add, "+", 0.0f, 0.0f, 0.0f, 0.0f, FTZ_OFF, binaryOperatorF),
OPERATOR_ENTRY(subtract, "-", 0.0f, 0.0f, 0.0f, 0.0f, FTZ_OFF, binaryOperatorF),
OPERATOR_ENTRY(negation, "-", 0.0f, 0.0f, 0.0f, 0.0f, FTZ_OFF, unaryOF),
{ "reciprocal",
"reciprocal",
{ (void*)reference_reciprocal },

View file

@ -361,6 +361,7 @@ DO_TEST(half_sqrt)
DO_TEST(half_tan)
DO_TEST(add)
DO_TEST(subtract)
DO_TEST(negation)
DO_TEST(reciprocal)
DO_TEST(divide)
DO_TEST(divide_cr)

View file

@ -964,6 +964,8 @@ double reference_subtract(double x, double y)
return a;
}
double reference_negation(double v) { return -v; }
double reference_multiply(double x, double y)
{
volatile float a = (float)x;
@ -3471,6 +3473,8 @@ long double reference_subtractl(long double x, long double y)
return (long double)a;
}
long double reference_negationl(long double v) { return -v; }
long double reference_multiplyl(long double x, long double y)
{
volatile double a = (double)x;

View file

@ -64,6 +64,7 @@ double reference_modf(double, double* n);
double reference_fdim(double, double);
double reference_add(double, double);
double reference_subtract(double, double);
double reference_negation(double v);
double reference_divide(double, double);
double reference_multiply(double, double);
double reference_remquo(double, double, int*);
@ -188,6 +189,7 @@ long double reference_modfl(long double, long double* n);
long double reference_fdiml(long double, long double);
long double reference_addl(long double, long double);
long double reference_subtractl(long double, long double);
long double reference_negationl(long double);
long double reference_dividel(long double, long double);
long double reference_multiplyl(long double, long double);
long double reference_remquol(long double, long double, int*);