From: Florian Krohm Date: Mon, 22 Sep 2025 20:36:45 +0000 (+0000) Subject: s390: BFP testsuite: comparison ops X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=73ece460ef7e891b404576fd7cc8bd92f4f753ed;p=thirdparty%2Fvalgrind.git s390: BFP testsuite: comparison ops Rename bfp-4.c --> bfp-compare.c. Add more testcases including NANs. Part of fixing https://bugs.kde.org/show_bug.cgi?id=509572 --- diff --git a/.gitignore b/.gitignore index fb3c9cc43b..efdfea78aa 100644 --- a/.gitignore +++ b/.gitignore @@ -2191,7 +2191,7 @@ /none/tests/s390x/bfp-arith /none/tests/s390x/bfp-2 /none/tests/s390x/bfp-3 -/none/tests/s390x/bfp-4 +/none/tests/s390x/bfp-compare /none/tests/s390x/srnm /none/tests/s390x/srnmb /none/tests/s390x/comp-1 diff --git a/none/tests/s390x/Makefile.am b/none/tests/s390x/Makefile.am index 234ed656ea..89bba9ec8a 100644 --- a/none/tests/s390x/Makefile.am +++ b/none/tests/s390x/Makefile.am @@ -10,7 +10,7 @@ INSN_TESTS = clc clcle cvb cvd icm lpr lam_stam xc mvst add sub mul \ cs csg cds cdsg cu21 cu21_1 cu24 cu24_1 cu42 cu12 cu12_1 \ ex_sig ex_clone cu14 cu14_1 cu41 fpconv ecag fpext_warn \ bfp-tdc rounding-1 rounding-2 rounding-3 bfp-arith \ - bfp-2 bfp-3 bfp-4 srnm srnmb comp-1 comp-2 exrl tmll tm stmg \ + bfp-2 bfp-3 bfp-compare srnm srnmb comp-1 comp-2 exrl tmll tm stmg \ ex clst mvc test_fork test_sig rounding-6 rxsbg popcnt \ high-word traps \ spechelper-alr spechelper-algr \ diff --git a/none/tests/s390x/bfp-4.stdout.exp b/none/tests/s390x/bfp-4.stdout.exp deleted file mode 100644 index bc81ea6cec..0000000000 --- a/none/tests/s390x/bfp-4.stdout.exp +++ /dev/null @@ -1,80 +0,0 @@ -cebr: 3.14 == 3.14 -ceb: 3.14 == 3.14 -kebr: 3.14 == 3.14 -keb: 3.14 == 3.14 -cdbr: 3.14 == 3.14 -cdb: 3.14 == 3.14 -kdbr: 3.14 == 3.14 -kdb: 3.14 == 3.14 -cxbr: 3.14 == 3.14 -kxbr: 3.14 == 3.14 -cebr: -2.78 < 2.78 -ceb: -2.78 < 2.78 -kebr: -2.78 < 2.78 -keb: -2.78 < 2.78 -cdbr: -2.78 < 2.78 -cdb: -2.78 < 2.78 -kdbr: -2.78 < 2.78 -kdb: -2.78 < 2.78 -cxbr: -2.78 < 2.78 -kxbr: -2.78 < 2.78 -cebr: inf == inf -ceb: inf == inf -kebr: inf == inf -keb: inf == inf -cdbr: inf == inf -cdb: inf == inf -kdbr: inf == inf -kdb: inf == inf -cxbr: inf == inf -kxbr: inf == inf -cebr: inf > -inf -ceb: inf > -inf -kebr: inf > -inf -keb: inf > -inf -cdbr: inf > -inf -cdb: inf > -inf -kdbr: inf > -inf -kdb: inf > -inf -cxbr: inf > -inf -kxbr: inf > -inf -cebr: -inf == -inf -ceb: -inf == -inf -kebr: -inf == -inf -keb: -inf == -inf -cdbr: -inf == -inf -cdb: -inf == -inf -kdbr: -inf == -inf -kdb: -inf == -inf -cxbr: -inf == -inf -kxbr: -inf == -inf -cebr: inf > 1 -ceb: inf > 1 -kebr: inf > 1 -keb: inf > 1 -cdbr: inf > 1 -cdb: inf > 1 -kdbr: inf > 1 -kdb: inf > 1 -cxbr: inf > 1 -kxbr: inf > 1 -cebr: -inf < -1 -ceb: -inf < -1 -kebr: -inf < -1 -keb: -inf < -1 -cdbr: -inf < -1 -cdb: -inf < -1 -kdbr: -inf < -1 -kdb: -inf < -1 -cxbr: -inf < -1 -kxbr: -inf < -1 -cebr: 0 == -0 -ceb: 0 == -0 -kebr: 0 == -0 -keb: 0 == -0 -cdbr: 0 == -0 -cdb: 0 == -0 -kdbr: 0 == -0 -kdb: 0 == -0 -cxbr: 0 == -0 -kxbr: 0 == -0 diff --git a/none/tests/s390x/bfp-4.vgtest b/none/tests/s390x/bfp-4.vgtest deleted file mode 100644 index b800aa313f..0000000000 --- a/none/tests/s390x/bfp-4.vgtest +++ /dev/null @@ -1 +0,0 @@ -prog: bfp-4 diff --git a/none/tests/s390x/bfp-4.c b/none/tests/s390x/bfp-compare.c similarity index 72% rename from none/tests/s390x/bfp-4.c rename to none/tests/s390x/bfp-compare.c index 02315b6f9d..35d5018b69 100644 --- a/none/tests/s390x/bfp-4.c +++ b/none/tests/s390x/bfp-compare.c @@ -1,4 +1,8 @@ +// FIXME rename bfp-compare.c + #include +#include +#include static const char *const cmp_result_str[] = { "==", "<", ">", "??" @@ -86,16 +90,31 @@ static void do_compare(float a, float b) int main(void) { - float inf = 1.f / 0.; - float neg_inf = -1.f / 0.; + assert(sizeof(long double) == 16); do_compare(3.14f, 3.14f); do_compare(-2.78f, 2.78f); - do_compare(inf, inf); - do_compare(inf, neg_inf); - do_compare(neg_inf, neg_inf); - do_compare(inf, 1.f); - do_compare(neg_inf, -1.f); - do_compare(1.f / inf, -1.f / inf); + do_compare( INFINITY, INFINITY); + do_compare( INFINITY, -INFINITY); + do_compare(-INFINITY, -INFINITY); + do_compare(-INFINITY, INFINITY); + do_compare( INFINITY, 1.f); + do_compare(-INFINITY, -1.f); + do_compare( 1.f, INFINITY); + do_compare(-1.f, -INFINITY); + + do_compare( NAN, NAN); + do_compare( NAN, -NAN); + do_compare(-NAN, NAN); + do_compare(-NAN, -NAN); + do_compare( NAN, INFINITY); + do_compare( NAN, -INFINITY); + do_compare(-NAN, INFINITY); + do_compare(-NAN, -INFINITY); + do_compare( NAN, 1.5); + do_compare(-NAN, -1.5); + do_compare( 1.5, NAN); + do_compare(-1.5, -NAN); + do_compare(1.f / INFINITY, -1.f / INFINITY); return 0; } diff --git a/none/tests/s390x/bfp-4.stderr.exp b/none/tests/s390x/bfp-compare.stderr.exp similarity index 100% rename from none/tests/s390x/bfp-4.stderr.exp rename to none/tests/s390x/bfp-compare.stderr.exp diff --git a/none/tests/s390x/bfp-compare.stdout.exp b/none/tests/s390x/bfp-compare.stdout.exp new file mode 100644 index 0000000000..b81f3f6e24 --- /dev/null +++ b/none/tests/s390x/bfp-compare.stdout.exp @@ -0,0 +1,230 @@ +cebr: 3.14 == 3.14 +ceb: 3.14 == 3.14 +kebr: 3.14 == 3.14 +keb: 3.14 == 3.14 +cdbr: 3.14 == 3.14 +cdb: 3.14 == 3.14 +kdbr: 3.14 == 3.14 +kdb: 3.14 == 3.14 +cxbr: 3.14 == 3.14 +kxbr: 3.14 == 3.14 +cebr: -2.78 < 2.78 +ceb: -2.78 < 2.78 +kebr: -2.78 < 2.78 +keb: -2.78 < 2.78 +cdbr: -2.78 < 2.78 +cdb: -2.78 < 2.78 +kdbr: -2.78 < 2.78 +kdb: -2.78 < 2.78 +cxbr: -2.78 < 2.78 +kxbr: -2.78 < 2.78 +cebr: inf == inf +ceb: inf == inf +kebr: inf == inf +keb: inf == inf +cdbr: inf == inf +cdb: inf == inf +kdbr: inf == inf +kdb: inf == inf +cxbr: inf == inf +kxbr: inf == inf +cebr: inf > -inf +ceb: inf > -inf +kebr: inf > -inf +keb: inf > -inf +cdbr: inf > -inf +cdb: inf > -inf +kdbr: inf > -inf +kdb: inf > -inf +cxbr: inf > -inf +kxbr: inf > -inf +cebr: -inf == -inf +ceb: -inf == -inf +kebr: -inf == -inf +keb: -inf == -inf +cdbr: -inf == -inf +cdb: -inf == -inf +kdbr: -inf == -inf +kdb: -inf == -inf +cxbr: -inf == -inf +kxbr: -inf == -inf +cebr: -inf < inf +ceb: -inf < inf +kebr: -inf < inf +keb: -inf < inf +cdbr: -inf < inf +cdb: -inf < inf +kdbr: -inf < inf +kdb: -inf < inf +cxbr: -inf < inf +kxbr: -inf < inf +cebr: inf > 1 +ceb: inf > 1 +kebr: inf > 1 +keb: inf > 1 +cdbr: inf > 1 +cdb: inf > 1 +kdbr: inf > 1 +kdb: inf > 1 +cxbr: inf > 1 +kxbr: inf > 1 +cebr: -inf < -1 +ceb: -inf < -1 +kebr: -inf < -1 +keb: -inf < -1 +cdbr: -inf < -1 +cdb: -inf < -1 +kdbr: -inf < -1 +kdb: -inf < -1 +cxbr: -inf < -1 +kxbr: -inf < -1 +cebr: 1 < inf +ceb: 1 < inf +kebr: 1 < inf +keb: 1 < inf +cdbr: 1 < inf +cdb: 1 < inf +kdbr: 1 < inf +kdb: 1 < inf +cxbr: 1 < inf +kxbr: 1 < inf +cebr: -1 > -inf +ceb: -1 > -inf +kebr: -1 > -inf +keb: -1 > -inf +cdbr: -1 > -inf +cdb: -1 > -inf +kdbr: -1 > -inf +kdb: -1 > -inf +cxbr: -1 > -inf +kxbr: -1 > -inf +cebr: nan ?? nan +ceb: nan ?? nan +kebr: nan ?? nan +keb: nan ?? nan +cdbr: nan ?? nan +cdb: nan ?? nan +kdbr: nan ?? nan +kdb: nan ?? nan +cxbr: nan ?? nan +kxbr: nan ?? nan +cebr: nan ?? -nan +ceb: nan ?? -nan +kebr: nan ?? -nan +keb: nan ?? -nan +cdbr: nan ?? -nan +cdb: nan ?? -nan +kdbr: nan ?? -nan +kdb: nan ?? -nan +cxbr: nan ?? -nan +kxbr: nan ?? -nan +cebr: -nan ?? nan +ceb: -nan ?? nan +kebr: -nan ?? nan +keb: -nan ?? nan +cdbr: -nan ?? nan +cdb: -nan ?? nan +kdbr: -nan ?? nan +kdb: -nan ?? nan +cxbr: -nan ?? nan +kxbr: -nan ?? nan +cebr: -nan ?? -nan +ceb: -nan ?? -nan +kebr: -nan ?? -nan +keb: -nan ?? -nan +cdbr: -nan ?? -nan +cdb: -nan ?? -nan +kdbr: -nan ?? -nan +kdb: -nan ?? -nan +cxbr: -nan ?? -nan +kxbr: -nan ?? -nan +cebr: nan ?? inf +ceb: nan ?? inf +kebr: nan ?? inf +keb: nan ?? inf +cdbr: nan ?? inf +cdb: nan ?? inf +kdbr: nan ?? inf +kdb: nan ?? inf +cxbr: nan ?? inf +kxbr: nan ?? inf +cebr: nan ?? -inf +ceb: nan ?? -inf +kebr: nan ?? -inf +keb: nan ?? -inf +cdbr: nan ?? -inf +cdb: nan ?? -inf +kdbr: nan ?? -inf +kdb: nan ?? -inf +cxbr: nan ?? -inf +kxbr: nan ?? -inf +cebr: -nan ?? inf +ceb: -nan ?? inf +kebr: -nan ?? inf +keb: -nan ?? inf +cdbr: -nan ?? inf +cdb: -nan ?? inf +kdbr: -nan ?? inf +kdb: -nan ?? inf +cxbr: -nan ?? inf +kxbr: -nan ?? inf +cebr: -nan ?? -inf +ceb: -nan ?? -inf +kebr: -nan ?? -inf +keb: -nan ?? -inf +cdbr: -nan ?? -inf +cdb: -nan ?? -inf +kdbr: -nan ?? -inf +kdb: -nan ?? -inf +cxbr: -nan ?? -inf +kxbr: -nan ?? -inf +cebr: nan ?? 1.5 +ceb: nan ?? 1.5 +kebr: nan ?? 1.5 +keb: nan ?? 1.5 +cdbr: nan ?? 1.5 +cdb: nan ?? 1.5 +kdbr: nan ?? 1.5 +kdb: nan ?? 1.5 +cxbr: nan ?? 1.5 +kxbr: nan ?? 1.5 +cebr: -nan ?? -1.5 +ceb: -nan ?? -1.5 +kebr: -nan ?? -1.5 +keb: -nan ?? -1.5 +cdbr: -nan ?? -1.5 +cdb: -nan ?? -1.5 +kdbr: -nan ?? -1.5 +kdb: -nan ?? -1.5 +cxbr: -nan ?? -1.5 +kxbr: -nan ?? -1.5 +cebr: 1.5 ?? nan +ceb: 1.5 ?? nan +kebr: 1.5 ?? nan +keb: 1.5 ?? nan +cdbr: 1.5 ?? nan +cdb: 1.5 ?? nan +kdbr: 1.5 ?? nan +kdb: 1.5 ?? nan +cxbr: 1.5 ?? nan +kxbr: 1.5 ?? nan +cebr: -1.5 ?? -nan +ceb: -1.5 ?? -nan +kebr: -1.5 ?? -nan +keb: -1.5 ?? -nan +cdbr: -1.5 ?? -nan +cdb: -1.5 ?? -nan +kdbr: -1.5 ?? -nan +kdb: -1.5 ?? -nan +cxbr: -1.5 ?? -nan +kxbr: -1.5 ?? -nan +cebr: 0 == -0 +ceb: 0 == -0 +kebr: 0 == -0 +keb: 0 == -0 +cdbr: 0 == -0 +cdb: 0 == -0 +kdbr: 0 == -0 +kdb: 0 == -0 +cxbr: 0 == -0 +kxbr: 0 == -0 diff --git a/none/tests/s390x/bfp-compare.vgtest b/none/tests/s390x/bfp-compare.vgtest new file mode 100644 index 0000000000..8bc91934ce --- /dev/null +++ b/none/tests/s390x/bfp-compare.vgtest @@ -0,0 +1 @@ +prog: bfp-compare