public inbox for gcc-cvs@sourceware.org help / color / mirror / Atom feed
From: Jeff Law <law@gcc.gnu.org> To: gcc-cvs@gcc.gnu.org Subject: [gcc(refs/vendors/riscv/heads/gcc-13-with-riscv-opts)] testsuite: Add cases for conditional-move and conditional-add operations Date: Wed, 22 Nov 2023 05:08:57 +0000 (GMT) [thread overview] Message-ID: <20231122050857.851A23858C20@sourceware.org> (raw) https://gcc.gnu.org/g:6bc414438dc9153da74a26aaff021ae5b9a3f38a commit 6bc414438dc9153da74a26aaff021ae5b9a3f38a Author: Maciej W. Rozycki <macro@embecosm.com> Date: Wed Nov 22 01:18:23 2023 +0000 testsuite: Add cases for conditional-move and conditional-add operations Add generic execution tests for expressions that are expected to expand to conditional-move and conditional-add operations where supported. To ensure no corner case escapes all relational operators are extensively covered for integer comparisons and all ordered operators are covered for floating-point comparisons. Unordered operators are not covered at this point as they'd require a different input data set. gcc/testsuite/ * gcc.dg/torture/addieq.c: New test. * gcc.dg/torture/addifeq.c: New test. * gcc.dg/torture/addifge.c: New test. * gcc.dg/torture/addifgt.c: New test. * gcc.dg/torture/addifle.c: New test. * gcc.dg/torture/addiflt.c: New test. * gcc.dg/torture/addifne.c: New test. * gcc.dg/torture/addige.c: New test. * gcc.dg/torture/addigeu.c: New test. * gcc.dg/torture/addigt.c: New test. * gcc.dg/torture/addigtu.c: New test. * gcc.dg/torture/addile.c: New test. * gcc.dg/torture/addileu.c: New test. * gcc.dg/torture/addilt.c: New test. * gcc.dg/torture/addiltu.c: New test. * gcc.dg/torture/addine.c: New test. * gcc.dg/torture/addleq.c: New test. * gcc.dg/torture/addlfeq.c: New test. * gcc.dg/torture/addlfge.c: New test. * gcc.dg/torture/addlfgt.c: New test. * gcc.dg/torture/addlfle.c: New test. * gcc.dg/torture/addlflt.c: New test. * gcc.dg/torture/addlfne.c: New test. * gcc.dg/torture/addlge.c: New test. * gcc.dg/torture/addlgeu.c: New test. * gcc.dg/torture/addlgt.c: New test. * gcc.dg/torture/addlgtu.c: New test. * gcc.dg/torture/addlle.c: New test. * gcc.dg/torture/addlleu.c: New test. * gcc.dg/torture/addllt.c: New test. * gcc.dg/torture/addlltu.c: New test. * gcc.dg/torture/addlne.c: New test. * gcc.dg/torture/movieq.c: New test. * gcc.dg/torture/movifeq.c: New test. * gcc.dg/torture/movifge.c: New test. * gcc.dg/torture/movifgt.c: New test. * gcc.dg/torture/movifle.c: New test. * gcc.dg/torture/moviflt.c: New test. * gcc.dg/torture/movifne.c: New test. * gcc.dg/torture/movige.c: New test. * gcc.dg/torture/movigeu.c: New test. * gcc.dg/torture/movigt.c: New test. * gcc.dg/torture/movigtu.c: New test. * gcc.dg/torture/movile.c: New test. * gcc.dg/torture/movileu.c: New test. * gcc.dg/torture/movilt.c: New test. * gcc.dg/torture/moviltu.c: New test. * gcc.dg/torture/movine.c: New test. * gcc.dg/torture/movleq.c: New test. * gcc.dg/torture/movlfeq.c: New test. * gcc.dg/torture/movlfge.c: New test. * gcc.dg/torture/movlfgt.c: New test. * gcc.dg/torture/movlfle.c: New test. * gcc.dg/torture/movlflt.c: New test. * gcc.dg/torture/movlfne.c: New test. * gcc.dg/torture/movlge.c: New test. * gcc.dg/torture/movlgeu.c: New test. * gcc.dg/torture/movlgt.c: New test. * gcc.dg/torture/movlgtu.c: New test. * gcc.dg/torture/movlle.c: New test. * gcc.dg/torture/movlleu.c: New test. * gcc.dg/torture/movllt.c: New test. * gcc.dg/torture/movlltu.c: New test. * gcc.dg/torture/movlne.c: New test. (cherry picked from commit c21ad4bee51d6c1f8f595ce5a547d567111a9526) Diff: --- gcc/testsuite/gcc.dg/torture/addieq.c | 31 +++++++++++++++++++++++++++++++ gcc/testsuite/gcc.dg/torture/addifeq.c | 31 +++++++++++++++++++++++++++++++ gcc/testsuite/gcc.dg/torture/addifge.c | 31 +++++++++++++++++++++++++++++++ gcc/testsuite/gcc.dg/torture/addifgt.c | 31 +++++++++++++++++++++++++++++++ gcc/testsuite/gcc.dg/torture/addifle.c | 31 +++++++++++++++++++++++++++++++ gcc/testsuite/gcc.dg/torture/addiflt.c | 31 +++++++++++++++++++++++++++++++ gcc/testsuite/gcc.dg/torture/addifne.c | 31 +++++++++++++++++++++++++++++++ gcc/testsuite/gcc.dg/torture/addige.c | 31 +++++++++++++++++++++++++++++++ gcc/testsuite/gcc.dg/torture/addigeu.c | 31 +++++++++++++++++++++++++++++++ gcc/testsuite/gcc.dg/torture/addigt.c | 31 +++++++++++++++++++++++++++++++ gcc/testsuite/gcc.dg/torture/addigtu.c | 31 +++++++++++++++++++++++++++++++ gcc/testsuite/gcc.dg/torture/addile.c | 31 +++++++++++++++++++++++++++++++ gcc/testsuite/gcc.dg/torture/addileu.c | 31 +++++++++++++++++++++++++++++++ gcc/testsuite/gcc.dg/torture/addilt.c | 31 +++++++++++++++++++++++++++++++ gcc/testsuite/gcc.dg/torture/addiltu.c | 31 +++++++++++++++++++++++++++++++ gcc/testsuite/gcc.dg/torture/addine.c | 31 +++++++++++++++++++++++++++++++ gcc/testsuite/gcc.dg/torture/addleq.c | 31 +++++++++++++++++++++++++++++++ gcc/testsuite/gcc.dg/torture/addlfeq.c | 31 +++++++++++++++++++++++++++++++ gcc/testsuite/gcc.dg/torture/addlfge.c | 31 +++++++++++++++++++++++++++++++ gcc/testsuite/gcc.dg/torture/addlfgt.c | 31 +++++++++++++++++++++++++++++++ gcc/testsuite/gcc.dg/torture/addlfle.c | 31 +++++++++++++++++++++++++++++++ gcc/testsuite/gcc.dg/torture/addlflt.c | 31 +++++++++++++++++++++++++++++++ gcc/testsuite/gcc.dg/torture/addlfne.c | 31 +++++++++++++++++++++++++++++++ gcc/testsuite/gcc.dg/torture/addlge.c | 31 +++++++++++++++++++++++++++++++ gcc/testsuite/gcc.dg/torture/addlgeu.c | 31 +++++++++++++++++++++++++++++++ gcc/testsuite/gcc.dg/torture/addlgt.c | 31 +++++++++++++++++++++++++++++++ gcc/testsuite/gcc.dg/torture/addlgtu.c | 31 +++++++++++++++++++++++++++++++ gcc/testsuite/gcc.dg/torture/addlle.c | 31 +++++++++++++++++++++++++++++++ gcc/testsuite/gcc.dg/torture/addlleu.c | 31 +++++++++++++++++++++++++++++++ gcc/testsuite/gcc.dg/torture/addllt.c | 31 +++++++++++++++++++++++++++++++ gcc/testsuite/gcc.dg/torture/addlltu.c | 31 +++++++++++++++++++++++++++++++ gcc/testsuite/gcc.dg/torture/addlne.c | 31 +++++++++++++++++++++++++++++++ gcc/testsuite/gcc.dg/torture/movieq.c | 31 +++++++++++++++++++++++++++++++ gcc/testsuite/gcc.dg/torture/movifeq.c | 31 +++++++++++++++++++++++++++++++ gcc/testsuite/gcc.dg/torture/movifge.c | 31 +++++++++++++++++++++++++++++++ gcc/testsuite/gcc.dg/torture/movifgt.c | 31 +++++++++++++++++++++++++++++++ gcc/testsuite/gcc.dg/torture/movifle.c | 31 +++++++++++++++++++++++++++++++ gcc/testsuite/gcc.dg/torture/moviflt.c | 31 +++++++++++++++++++++++++++++++ gcc/testsuite/gcc.dg/torture/movifne.c | 31 +++++++++++++++++++++++++++++++ gcc/testsuite/gcc.dg/torture/movige.c | 31 +++++++++++++++++++++++++++++++ gcc/testsuite/gcc.dg/torture/movigeu.c | 31 +++++++++++++++++++++++++++++++ gcc/testsuite/gcc.dg/torture/movigt.c | 31 +++++++++++++++++++++++++++++++ gcc/testsuite/gcc.dg/torture/movigtu.c | 31 +++++++++++++++++++++++++++++++ gcc/testsuite/gcc.dg/torture/movile.c | 31 +++++++++++++++++++++++++++++++ gcc/testsuite/gcc.dg/torture/movileu.c | 31 +++++++++++++++++++++++++++++++ gcc/testsuite/gcc.dg/torture/movilt.c | 31 +++++++++++++++++++++++++++++++ gcc/testsuite/gcc.dg/torture/moviltu.c | 31 +++++++++++++++++++++++++++++++ gcc/testsuite/gcc.dg/torture/movine.c | 31 +++++++++++++++++++++++++++++++ gcc/testsuite/gcc.dg/torture/movleq.c | 31 +++++++++++++++++++++++++++++++ gcc/testsuite/gcc.dg/torture/movlfeq.c | 31 +++++++++++++++++++++++++++++++ gcc/testsuite/gcc.dg/torture/movlfge.c | 31 +++++++++++++++++++++++++++++++ gcc/testsuite/gcc.dg/torture/movlfgt.c | 31 +++++++++++++++++++++++++++++++ gcc/testsuite/gcc.dg/torture/movlfle.c | 31 +++++++++++++++++++++++++++++++ gcc/testsuite/gcc.dg/torture/movlflt.c | 31 +++++++++++++++++++++++++++++++ gcc/testsuite/gcc.dg/torture/movlfne.c | 31 +++++++++++++++++++++++++++++++ gcc/testsuite/gcc.dg/torture/movlge.c | 31 +++++++++++++++++++++++++++++++ gcc/testsuite/gcc.dg/torture/movlgeu.c | 31 +++++++++++++++++++++++++++++++ gcc/testsuite/gcc.dg/torture/movlgt.c | 31 +++++++++++++++++++++++++++++++ gcc/testsuite/gcc.dg/torture/movlgtu.c | 31 +++++++++++++++++++++++++++++++ gcc/testsuite/gcc.dg/torture/movlle.c | 31 +++++++++++++++++++++++++++++++ gcc/testsuite/gcc.dg/torture/movlleu.c | 31 +++++++++++++++++++++++++++++++ gcc/testsuite/gcc.dg/torture/movllt.c | 31 +++++++++++++++++++++++++++++++ gcc/testsuite/gcc.dg/torture/movlltu.c | 31 +++++++++++++++++++++++++++++++ gcc/testsuite/gcc.dg/torture/movlne.c | 31 +++++++++++++++++++++++++++++++ 64 files changed, 1984 insertions(+) diff --git a/gcc/testsuite/gcc.dg/torture/addieq.c b/gcc/testsuite/gcc.dg/torture/addieq.c new file mode 100644 index 00000000000..5fea38e61d0 --- /dev/null +++ b/gcc/testsuite/gcc.dg/torture/addieq.c @@ -0,0 +1,31 @@ +/* { dg-do run } */ + +typedef int int_t; + +__attribute__ ((noinline)) int_t +addieq (int_t w, int_t x, int_t y, int_t z) +{ + return w == x ? y + z : y; +} + +int +main (void) +{ + if (addieq (-1, -1, 12, 23) != 35) + return 1; + if (addieq (-1, 3, 12, 23) != 12) + return 1; + if (addieq (1, 3, 12, 23) != 12) + return 1; + if (addieq (3, 3, 12, 23) != 35) + return 1; + if (addieq (5, 3, 12, 23) != 12) + return 1; + if (addieq (3, -1, 12, 23) != 12) + return 1; + if (addieq (3, 1, 12, 23) != 12) + return 1; + if (addieq (3, 5, 12, 23) != 12) + return 1; + return 0; +} diff --git a/gcc/testsuite/gcc.dg/torture/addifeq.c b/gcc/testsuite/gcc.dg/torture/addifeq.c new file mode 100644 index 00000000000..b3d9973ade1 --- /dev/null +++ b/gcc/testsuite/gcc.dg/torture/addifeq.c @@ -0,0 +1,31 @@ +/* { dg-do run } */ + +typedef int int_t; + +__attribute__ ((noinline)) int_t +addifeq (double w, double x, int_t y, int_t z) +{ + return w == x ? y + z : y; +} + +int +main (void) +{ + if (addifeq (-1.0, -1.0, 12, 23) != 35) + return 1; + if (addifeq (-1.0, 3.0, 12, 23) != 12) + return 1; + if (addifeq (1.0, 3.0, 12, 23) != 12) + return 1; + if (addifeq (3.0, 3.0, 12, 23) != 35) + return 1; + if (addifeq (5.0, 3.0, 12, 23) != 12) + return 1; + if (addifeq (3.0, -1.0, 12, 23) != 12) + return 1; + if (addifeq (3.0, 1.0, 12, 23) != 12) + return 1; + if (addifeq (3.0, 5.0, 12, 23) != 12) + return 1; + return 0; +} diff --git a/gcc/testsuite/gcc.dg/torture/addifge.c b/gcc/testsuite/gcc.dg/torture/addifge.c new file mode 100644 index 00000000000..b719a3db6ea --- /dev/null +++ b/gcc/testsuite/gcc.dg/torture/addifge.c @@ -0,0 +1,31 @@ +/* { dg-do run } */ + +typedef int int_t; + +__attribute__ ((noinline)) int_t +addifge (double w, double x, int_t y, int_t z) +{ + return w >= x ? y + z : y; +} + +int +main (void) +{ + if (addifge (-1.0, -1.0, 12, 23) != 35) + return 1; + if (addifge (-1.0, 3.0, 12, 23) != 12) + return 1; + if (addifge (1.0, 3.0, 12, 23) != 12) + return 1; + if (addifge (3.0, 3.0, 12, 23) != 35) + return 1; + if (addifge (5.0, 3.0, 12, 23) != 35) + return 1; + if (addifge (3.0, -1.0, 12, 23) != 35) + return 1; + if (addifge (3.0, 1.0, 12, 23) != 35) + return 1; + if (addifge (3.0, 5.0, 12, 23) != 12) + return 1; + return 0; +} diff --git a/gcc/testsuite/gcc.dg/torture/addifgt.c b/gcc/testsuite/gcc.dg/torture/addifgt.c new file mode 100644 index 00000000000..5ad591a30e3 --- /dev/null +++ b/gcc/testsuite/gcc.dg/torture/addifgt.c @@ -0,0 +1,31 @@ +/* { dg-do run } */ + +typedef int int_t; + +__attribute__ ((noinline)) int_t +addifgt (double w, double x, int_t y, int_t z) +{ + return w > x ? y + z : y; +} + +int +main (void) +{ + if (addifgt (-1.0, -1.0, 12, 23) != 12) + return 1; + if (addifgt (-1.0, 3.0, 12, 23) != 12) + return 1; + if (addifgt (1.0, 3.0, 12, 23) != 12) + return 1; + if (addifgt (3.0, 3.0, 12, 23) != 12) + return 1; + if (addifgt (5.0, 3.0, 12, 23) != 35) + return 1; + if (addifgt (3.0, -1.0, 12, 23) != 35) + return 1; + if (addifgt (3.0, 1.0, 12, 23) != 35) + return 1; + if (addifgt (3.0, 5.0, 12, 23) != 12) + return 1; + return 0; +} diff --git a/gcc/testsuite/gcc.dg/torture/addifle.c b/gcc/testsuite/gcc.dg/torture/addifle.c new file mode 100644 index 00000000000..7353f403179 --- /dev/null +++ b/gcc/testsuite/gcc.dg/torture/addifle.c @@ -0,0 +1,31 @@ +/* { dg-do run } */ + +typedef int int_t; + +__attribute__ ((noinline)) int_t +addifle (double w, double x, int_t y, int_t z) +{ + return w <= x ? y + z : y; +} + +int +main (void) +{ + if (addifle (-1.0, -1.0, 12, 23) != 35) + return 1; + if (addifle (-1.0, 3.0, 12, 23) != 35) + return 1; + if (addifle (1.0, 3.0, 12, 23) != 35) + return 1; + if (addifle (3.0, 3.0, 12, 23) != 35) + return 1; + if (addifle (5.0, 3.0, 12, 23) != 12) + return 1; + if (addifle (3.0, -1.0, 12, 23) != 12) + return 1; + if (addifle (3.0, 1.0, 12, 23) != 12) + return 1; + if (addifle (3.0, 5.0, 12, 23) != 35) + return 1; + return 0; +} diff --git a/gcc/testsuite/gcc.dg/torture/addiflt.c b/gcc/testsuite/gcc.dg/torture/addiflt.c new file mode 100644 index 00000000000..0bdd6d60d0a --- /dev/null +++ b/gcc/testsuite/gcc.dg/torture/addiflt.c @@ -0,0 +1,31 @@ +/* { dg-do run } */ + +typedef int int_t; + +__attribute__ ((noinline)) int_t +addiflt (double w, double x, int_t y, int_t z) +{ + return w < x ? y + z : y; +} + +int +main (void) +{ + if (addiflt (-1.0, -1.0, 12, 23) != 12) + return 1; + if (addiflt (-1.0, 3.0, 12, 23) != 35) + return 1; + if (addiflt (1.0, 3.0, 12, 23) != 35) + return 1; + if (addiflt (3.0, 3.0, 12, 23) != 12) + return 1; + if (addiflt (5.0, 3.0, 12, 23) != 12) + return 1; + if (addiflt (3.0, -1.0, 12, 23) != 12) + return 1; + if (addiflt (3.0, 1.0, 12, 23) != 12) + return 1; + if (addiflt (3.0, 5.0, 12, 23) != 35) + return 1; + return 0; +} diff --git a/gcc/testsuite/gcc.dg/torture/addifne.c b/gcc/testsuite/gcc.dg/torture/addifne.c new file mode 100644 index 00000000000..3e53709e55d --- /dev/null +++ b/gcc/testsuite/gcc.dg/torture/addifne.c @@ -0,0 +1,31 @@ +/* { dg-do run } */ + +typedef int int_t; + +__attribute__ ((noinline)) int_t +addifne (double w, double x, int_t y, int_t z) +{ + return w != x ? y + z : y; +} + +int +main (void) +{ + if (addifne (-1.0, -1.0, 12, 23) != 12) + return 1; + if (addifne (-1.0, 3.0, 12, 23) != 35) + return 1; + if (addifne (1.0, 3.0, 12, 23) != 35) + return 1; + if (addifne (3.0, 3.0, 12, 23) != 12) + return 1; + if (addifne (5.0, 3.0, 12, 23) != 35) + return 1; + if (addifne (3.0, -1.0, 12, 23) != 35) + return 1; + if (addifne (3.0, 1.0, 12, 23) != 35) + return 1; + if (addifne (3.0, 5.0, 12, 23) != 35) + return 1; + return 0; +} diff --git a/gcc/testsuite/gcc.dg/torture/addige.c b/gcc/testsuite/gcc.dg/torture/addige.c new file mode 100644 index 00000000000..79b452802ec --- /dev/null +++ b/gcc/testsuite/gcc.dg/torture/addige.c @@ -0,0 +1,31 @@ +/* { dg-do run } */ + +typedef int int_t; + +__attribute__ ((noinline)) int_t +addige (int_t w, int_t x, int_t y, int_t z) +{ + return w >= x ? y + z : y; +} + +int +main (void) +{ + if (addige (-1, -1, 12, 23) != 35) + return 1; + if (addige (-1, 3, 12, 23) != 12) + return 1; + if (addige (1, 3, 12, 23) != 12) + return 1; + if (addige (3, 3, 12, 23) != 35) + return 1; + if (addige (5, 3, 12, 23) != 35) + return 1; + if (addige (3, -1, 12, 23) != 35) + return 1; + if (addige (3, 1, 12, 23) != 35) + return 1; + if (addige (3, 5, 12, 23) != 12) + return 1; + return 0; +} diff --git a/gcc/testsuite/gcc.dg/torture/addigeu.c b/gcc/testsuite/gcc.dg/torture/addigeu.c new file mode 100644 index 00000000000..59bb6152b9d --- /dev/null +++ b/gcc/testsuite/gcc.dg/torture/addigeu.c @@ -0,0 +1,31 @@ +/* { dg-do run } */ + +typedef unsigned int int_t; + +__attribute__ ((noinline)) int_t +addigeu (int_t w, int_t x, int_t y, int_t z) +{ + return w >= x ? y + z : y; +} + +int +main (void) +{ + if (addigeu (-1, -1, 12, 23) != 35) + return 1; + if (addigeu (-1, 3, 12, 23) != 35) + return 1; + if (addigeu (1, 3, 12, 23) != 12) + return 1; + if (addigeu (3, 3, 12, 23) != 35) + return 1; + if (addigeu (5, 3, 12, 23) != 35) + return 1; + if (addigeu (3, -1, 12, 23) != 12) + return 1; + if (addigeu (3, 1, 12, 23) != 35) + return 1; + if (addigeu (3, 5, 12, 23) != 12) + return 1; + return 0; +} diff --git a/gcc/testsuite/gcc.dg/torture/addigt.c b/gcc/testsuite/gcc.dg/torture/addigt.c new file mode 100644 index 00000000000..8c90e5fbec6 --- /dev/null +++ b/gcc/testsuite/gcc.dg/torture/addigt.c @@ -0,0 +1,31 @@ +/* { dg-do run } */ + +typedef int int_t; + +__attribute__ ((noinline)) int_t +addigt (int_t w, int_t x, int_t y, int_t z) +{ + return w > x ? y + z : y; +} + +int +main (void) +{ + if (addigt (-1, -1, 12, 23) != 12) + return 1; + if (addigt (-1, 3, 12, 23) != 12) + return 1; + if (addigt (1, 3, 12, 23) != 12) + return 1; + if (addigt (3, 3, 12, 23) != 12) + return 1; + if (addigt (5, 3, 12, 23) != 35) + return 1; + if (addigt (3, -1, 12, 23) != 35) + return 1; + if (addigt (3, 1, 12, 23) != 35) + return 1; + if (addigt (3, 5, 12, 23) != 12) + return 1; + return 0; +} diff --git a/gcc/testsuite/gcc.dg/torture/addigtu.c b/gcc/testsuite/gcc.dg/torture/addigtu.c new file mode 100644 index 00000000000..1837ad6493a --- /dev/null +++ b/gcc/testsuite/gcc.dg/torture/addigtu.c @@ -0,0 +1,31 @@ +/* { dg-do run } */ + +typedef unsigned int int_t; + +__attribute__ ((noinline)) int_t +addigtu (int_t w, int_t x, int_t y, int_t z) +{ + return w > x ? y + z : y; +} + +int +main (void) +{ + if (addigtu (-1, -1, 12, 23) != 12) + return 1; + if (addigtu (-1, 3, 12, 23) != 35) + return 1; + if (addigtu (1, 3, 12, 23) != 12) + return 1; + if (addigtu (3, 3, 12, 23) != 12) + return 1; + if (addigtu (5, 3, 12, 23) != 35) + return 1; + if (addigtu (3, -1, 12, 23) != 12) + return 1; + if (addigtu (3, 1, 12, 23) != 35) + return 1; + if (addigtu (3, 5, 12, 23) != 12) + return 1; + return 0; +} diff --git a/gcc/testsuite/gcc.dg/torture/addile.c b/gcc/testsuite/gcc.dg/torture/addile.c new file mode 100644 index 00000000000..9e436b9dde5 --- /dev/null +++ b/gcc/testsuite/gcc.dg/torture/addile.c @@ -0,0 +1,31 @@ +/* { dg-do run } */ + +typedef int int_t; + +__attribute__ ((noinline)) int_t +addile (int_t w, int_t x, int_t y, int_t z) +{ + return w <= x ? y + z : y; +} + +int +main (void) +{ + if (addile (-1, -1, 12, 23) != 35) + return 1; + if (addile (-1, 3, 12, 23) != 35) + return 1; + if (addile (1, 3, 12, 23) != 35) + return 1; + if (addile (3, 3, 12, 23) != 35) + return 1; + if (addile (5, 3, 12, 23) != 12) + return 1; + if (addile (3, -1, 12, 23) != 12) + return 1; + if (addile (3, 1, 12, 23) != 12) + return 1; + if (addile (3, 5, 12, 23) != 35) + return 1; + return 0; +} diff --git a/gcc/testsuite/gcc.dg/torture/addileu.c b/gcc/testsuite/gcc.dg/torture/addileu.c new file mode 100644 index 00000000000..a70bacb04e9 --- /dev/null +++ b/gcc/testsuite/gcc.dg/torture/addileu.c @@ -0,0 +1,31 @@ +/* { dg-do run } */ + +typedef unsigned int int_t; + +__attribute__ ((noinline)) int_t +addileu (int_t w, int_t x, int_t y, int_t z) +{ + return w <= x ? y + z : y; +} + +int +main (void) +{ + if (addileu (-1, -1, 12, 23) != 35) + return 1; + if (addileu (-1, 3, 12, 23) != 12) + return 1; + if (addileu (1, 3, 12, 23) != 35) + return 1; + if (addileu (3, 3, 12, 23) != 35) + return 1; + if (addileu (5, 3, 12, 23) != 12) + return 1; + if (addileu (3, -1, 12, 23) != 35) + return 1; + if (addileu (3, 1, 12, 23) != 12) + return 1; + if (addileu (3, 5, 12, 23) != 35) + return 1; + return 0; +} diff --git a/gcc/testsuite/gcc.dg/torture/addilt.c b/gcc/testsuite/gcc.dg/torture/addilt.c new file mode 100644 index 00000000000..15739151595 --- /dev/null +++ b/gcc/testsuite/gcc.dg/torture/addilt.c @@ -0,0 +1,31 @@ +/* { dg-do run } */ + +typedef int int_t; + +__attribute__ ((noinline)) int_t +addilt (int_t w, int_t x, int_t y, int_t z) +{ + return w < x ? y + z : y; +} + +int +main (void) +{ + if (addilt (-1, -1, 12, 23) != 12) + return 1; + if (addilt (-1, 3, 12, 23) != 35) + return 1; + if (addilt (1, 3, 12, 23) != 35) + return 1; + if (addilt (3, 3, 12, 23) != 12) + return 1; + if (addilt (5, 3, 12, 23) != 12) + return 1; + if (addilt (3, -1, 12, 23) != 12) + return 1; + if (addilt (3, 1, 12, 23) != 12) + return 1; + if (addilt (3, 5, 12, 23) != 35) + return 1; + return 0; +} diff --git a/gcc/testsuite/gcc.dg/torture/addiltu.c b/gcc/testsuite/gcc.dg/torture/addiltu.c new file mode 100644 index 00000000000..3db70656f55 --- /dev/null +++ b/gcc/testsuite/gcc.dg/torture/addiltu.c @@ -0,0 +1,31 @@ +/* { dg-do run } */ + +typedef unsigned int int_t; + +__attribute__ ((noinline)) int_t +addiltu (int_t w, int_t x, int_t y, int_t z) +{ + return w < x ? y + z : y; +} + +int +main (void) +{ + if (addiltu (-1, -1, 12, 23) != 12) + return 1; + if (addiltu (-1, 3, 12, 23) != 12) + return 1; + if (addiltu (1, 3, 12, 23) != 35) + return 1; + if (addiltu (3, 3, 12, 23) != 12) + return 1; + if (addiltu (5, 3, 12, 23) != 12) + return 1; + if (addiltu (3, -1, 12, 23) != 35) + return 1; + if (addiltu (3, 1, 12, 23) != 12) + return 1; + if (addiltu (3, 5, 12, 23) != 35) + return 1; + return 0; +} diff --git a/gcc/testsuite/gcc.dg/torture/addine.c b/gcc/testsuite/gcc.dg/torture/addine.c new file mode 100644 index 00000000000..505d815288e --- /dev/null +++ b/gcc/testsuite/gcc.dg/torture/addine.c @@ -0,0 +1,31 @@ +/* { dg-do run } */ + +typedef int int_t; + +__attribute__ ((noinline)) int_t +addine (int_t w, int_t x, int_t y, int_t z) +{ + return w != x ? y + z : y; +} + +int +main (void) +{ + if (addine (-1, -1, 12, 23) != 12) + return 1; + if (addine (-1, 3, 12, 23) != 35) + return 1; + if (addine (1, 3, 12, 23) != 35) + return 1; + if (addine (3, 3, 12, 23) != 12) + return 1; + if (addine (5, 3, 12, 23) != 35) + return 1; + if (addine (3, -1, 12, 23) != 35) + return 1; + if (addine (3, 1, 12, 23) != 35) + return 1; + if (addine (3, 5, 12, 23) != 35) + return 1; + return 0; +} diff --git a/gcc/testsuite/gcc.dg/torture/addleq.c b/gcc/testsuite/gcc.dg/torture/addleq.c new file mode 100644 index 00000000000..02ac6d146c9 --- /dev/null +++ b/gcc/testsuite/gcc.dg/torture/addleq.c @@ -0,0 +1,31 @@ +/* { dg-do run } */ + +typedef long int_t; + +__attribute__ ((noinline)) int_t +addleq (int_t w, int_t x, int_t y, int_t z) +{ + return w == x ? y + z : y; +} + +int +main (void) +{ + if (addleq (-1L, -1L, 12L, 23L) != 35L) + return 1; + if (addleq (-1L, 3L, 12L, 23L) != 12L) + return 1; + if (addleq (1L, 3L, 12L, 23L) != 12L) + return 1; + if (addleq (3L, 3L, 12L, 23L) != 35L) + return 1; + if (addleq (5L, 3L, 12L, 23L) != 12L) + return 1; + if (addleq (3L, -1L, 12L, 23L) != 12L) + return 1; + if (addleq (3L, 1L, 12L, 23L) != 12L) + return 1; + if (addleq (3L, 5L, 12L, 23L) != 12L) + return 1; + return 0; +} diff --git a/gcc/testsuite/gcc.dg/torture/addlfeq.c b/gcc/testsuite/gcc.dg/torture/addlfeq.c new file mode 100644 index 00000000000..ca95f78ffb6 --- /dev/null +++ b/gcc/testsuite/gcc.dg/torture/addlfeq.c @@ -0,0 +1,31 @@ +/* { dg-do run } */ + +typedef long int_t; + +__attribute__ ((noinline)) int_t +addlfeq (double w, double x, int_t y, int_t z) +{ + return w == x ? y + z : y; +} + +int +main (void) +{ + if (addlfeq (-1.0, -1.0, 12L, 23L) != 35L) + return 1; + if (addlfeq (-1.0, 3.0, 12L, 23L) != 12L) + return 1; + if (addlfeq (1.0, 3.0, 12L, 23L) != 12L) + return 1; + if (addlfeq (3.0, 3.0, 12L, 23L) != 35L) + return 1; + if (addlfeq (5.0, 3.0, 12L, 23L) != 12L) + return 1; + if (addlfeq (3.0, -1.0, 12L, 23L) != 12L) + return 1; + if (addlfeq (3.0, 1.0, 12L, 23L) != 12L) + return 1; + if (addlfeq (3.0, 5.0, 12L, 23L) != 12L) + return 1; + return 0; +} diff --git a/gcc/testsuite/gcc.dg/torture/addlfge.c b/gcc/testsuite/gcc.dg/torture/addlfge.c new file mode 100644 index 00000000000..b63de69ca90 --- /dev/null +++ b/gcc/testsuite/gcc.dg/torture/addlfge.c @@ -0,0 +1,31 @@ +/* { dg-do run } */ + +typedef long int_t; + +__attribute__ ((noinline)) int_t +addlfge (double w, double x, int_t y, int_t z) +{ + return w >= x ? y + z : y; +} + +int +main (void) +{ + if (addlfge (-1.0, -1.0, 12L, 23L) != 35L) + return 1; + if (addlfge (-1.0, 3.0, 12L, 23L) != 12L) + return 1; + if (addlfge (1.0, 3.0, 12L, 23L) != 12L) + return 1; + if (addlfge (3.0, 3.0, 12L, 23L) != 35L) + return 1; + if (addlfge (5.0, 3.0, 12L, 23L) != 35L) + return 1; + if (addlfge (3.0, -1.0, 12L, 23L) != 35L) + return 1; + if (addlfge (3.0, 1.0, 12L, 23L) != 35L) + return 1; + if (addlfge (3.0, 5.0, 12L, 23L) != 12L) + return 1; + return 0; +} diff --git a/gcc/testsuite/gcc.dg/torture/addlfgt.c b/gcc/testsuite/gcc.dg/torture/addlfgt.c new file mode 100644 index 00000000000..1077cc0cd04 --- /dev/null +++ b/gcc/testsuite/gcc.dg/torture/addlfgt.c @@ -0,0 +1,31 @@ +/* { dg-do run } */ + +typedef long int_t; + +__attribute__ ((noinline)) int_t +addlfgt (double w, double x, int_t y, int_t z) +{ + return w > x ? y + z : y; +} + +int +main (void) +{ + if (addlfgt (-1.0, -1.0, 12L, 23L) != 12L) + return 1; + if (addlfgt (-1.0, 3.0, 12L, 23L) != 12L) + return 1; + if (addlfgt (1.0, 3.0, 12L, 23L) != 12L) + return 1; + if (addlfgt (3.0, 3.0, 12L, 23L) != 12L) + return 1; + if (addlfgt (5.0, 3.0, 12L, 23L) != 35L) + return 1; + if (addlfgt (3.0, -1.0, 12L, 23L) != 35L) + return 1; + if (addlfgt (3.0, 1.0, 12L, 23L) != 35L) + return 1; + if (addlfgt (3.0, 5.0, 12L, 23L) != 12L) + return 1; + return 0; +} diff --git a/gcc/testsuite/gcc.dg/torture/addlfle.c b/gcc/testsuite/gcc.dg/torture/addlfle.c new file mode 100644 index 00000000000..0fd8128a225 --- /dev/null +++ b/gcc/testsuite/gcc.dg/torture/addlfle.c @@ -0,0 +1,31 @@ +/* { dg-do run } */ + +typedef long int_t; + +__attribute__ ((noinline)) int_t +addlfle (double w, double x, int_t y, int_t z) +{ + return w <= x ? y + z : y; +} + +int +main (void) +{ + if (addlfle (-1.0, -1.0, 12L, 23L) != 35L) + return 1; + if (addlfle (-1.0, 3.0, 12L, 23L) != 35L) + return 1; + if (addlfle (1.0, 3.0, 12L, 23L) != 35L) + return 1; + if (addlfle (3.0, 3.0, 12L, 23L) != 35L) + return 1; + if (addlfle (5.0, 3.0, 12L, 23L) != 12L) + return 1; + if (addlfle (3.0, -1.0, 12L, 23L) != 12L) + return 1; + if (addlfle (3.0, 1.0, 12L, 23L) != 12L) + return 1; + if (addlfle (3.0, 5.0, 12L, 23L) != 35L) + return 1; + return 0; +} diff --git a/gcc/testsuite/gcc.dg/torture/addlflt.c b/gcc/testsuite/gcc.dg/torture/addlflt.c new file mode 100644 index 00000000000..cc4cb4553df --- /dev/null +++ b/gcc/testsuite/gcc.dg/torture/addlflt.c @@ -0,0 +1,31 @@ +/* { dg-do run } */ + +typedef long int_t; + +__attribute__ ((noinline)) int_t +addlflt (double w, double x, int_t y, int_t z) +{ + return w < x ? y + z : y; +} + +int +main (void) +{ + if (addlflt (-1.0, -1.0, 12L, 23L) != 12L) + return 1; + if (addlflt (-1.0, 3.0, 12L, 23L) != 35L) + return 1; + if (addlflt (1.0, 3.0, 12L, 23L) != 35L) + return 1; + if (addlflt (3.0, 3.0, 12L, 23L) != 12L) + return 1; + if (addlflt (5.0, 3.0, 12L, 23L) != 12L) + return 1; + if (addlflt (3.0, -1.0, 12L, 23L) != 12L) + return 1; + if (addlflt (3.0, 1.0, 12L, 23L) != 12L) + return 1; + if (addlflt (3.0, 5.0, 12L, 23L) != 35L) + return 1; + return 0; +} diff --git a/gcc/testsuite/gcc.dg/torture/addlfne.c b/gcc/testsuite/gcc.dg/torture/addlfne.c new file mode 100644 index 00000000000..f8018dc3705 --- /dev/null +++ b/gcc/testsuite/gcc.dg/torture/addlfne.c @@ -0,0 +1,31 @@ +/* { dg-do run } */ + +typedef long int_t; + +__attribute__ ((noinline)) int_t +addlfne (double w, double x, int_t y, int_t z) +{ + return w != x ? y + z : y; +} + +int +main (void) +{ + if (addlfne (-1.0, -1.0, 12L, 23L) != 12L) + return 1; + if (addlfne (-1.0, 3.0, 12L, 23L) != 35L) + return 1; + if (addlfne (1.0, 3.0, 12L, 23L) != 35L) + return 1; + if (addlfne (3.0, 3.0, 12L, 23L) != 12L) + return 1; + if (addlfne (5.0, 3.0, 12L, 23L) != 35L) + return 1; + if (addlfne (3.0, -1.0, 12L, 23L) != 35L) + return 1; + if (addlfne (3.0, 1.0, 12L, 23L) != 35L) + return 1; + if (addlfne (3.0, 5.0, 12L, 23L) != 35L) + return 1; + return 0; +} diff --git a/gcc/testsuite/gcc.dg/torture/addlge.c b/gcc/testsuite/gcc.dg/torture/addlge.c new file mode 100644 index 00000000000..f23773ed480 --- /dev/null +++ b/gcc/testsuite/gcc.dg/torture/addlge.c @@ -0,0 +1,31 @@ +/* { dg-do run } */ + +typedef long int_t; + +__attribute__ ((noinline)) int_t +addlge (int_t w, int_t x, int_t y, int_t z) +{ + return w >= x ? y + z : y; +} + +int +main (void) +{ + if (addlge (-1L, -1L, 12L, 23L) != 35L) + return 1; + if (addlge (-1L, 3L, 12L, 23L) != 12L) + return 1; + if (addlge (1L, 3L, 12L, 23L) != 12L) + return 1; + if (addlge (3L, 3L, 12L, 23L) != 35L) + return 1; + if (addlge (5L, 3L, 12L, 23L) != 35L) + return 1; + if (addlge (3L, -1L, 12L, 23L) != 35L) + return 1; + if (addlge (3L, 1L, 12L, 23L) != 35L) + return 1; + if (addlge (3L, 5L, 12L, 23L) != 12L) + return 1; + return 0; +} diff --git a/gcc/testsuite/gcc.dg/torture/addlgeu.c b/gcc/testsuite/gcc.dg/torture/addlgeu.c new file mode 100644 index 00000000000..254bb571c66 --- /dev/null +++ b/gcc/testsuite/gcc.dg/torture/addlgeu.c @@ -0,0 +1,31 @@ +/* { dg-do run } */ + +typedef unsigned long int_t; + +__attribute__ ((noinline)) int_t +addlgeu (int_t w, int_t x, int_t y, int_t z) +{ + return w >= x ? y + z : y; +} + +int +main (void) +{ + if (addlgeu (-1L, -1L, 12L, 23L) != 35L) + return 1; + if (addlgeu (-1L, 3L, 12L, 23L) != 35L) + return 1; + if (addlgeu (1L, 3L, 12L, 23L) != 12L) + return 1; + if (addlgeu (3L, 3L, 12L, 23L) != 35L) + return 1; + if (addlgeu (5L, 3L, 12L, 23L) != 35L) + return 1; + if (addlgeu (3L, -1L, 12L, 23L) != 12L) + return 1; + if (addlgeu (3L, 1L, 12L, 23L) != 35L) + return 1; + if (addlgeu (3L, 5L, 12L, 23L) != 12L) + return 1; + return 0; +} diff --git a/gcc/testsuite/gcc.dg/torture/addlgt.c b/gcc/testsuite/gcc.dg/torture/addlgt.c new file mode 100644 index 00000000000..0bd0fe12db2 --- /dev/null +++ b/gcc/testsuite/gcc.dg/torture/addlgt.c @@ -0,0 +1,31 @@ +/* { dg-do run } */ + +typedef long int_t; + +__attribute__ ((noinline)) int_t +addlgt (int_t w, int_t x, int_t y, int_t z) +{ + return w > x ? y + z : y; +} + +int +main (void) +{ + if (addlgt (-1L, -1L, 12L, 23L) != 12L) + return 1; + if (addlgt (-1L, 3L, 12L, 23L) != 12L) + return 1; + if (addlgt (1L, 3L, 12L, 23L) != 12L) + return 1; + if (addlgt (3L, 3L, 12L, 23L) != 12L) + return 1; + if (addlgt (5L, 3L, 12L, 23L) != 35L) + return 1; + if (addlgt (3L, -1L, 12L, 23L) != 35L) + return 1; + if (addlgt (3L, 1L, 12L, 23L) != 35L) + return 1; + if (addlgt (3L, 5L, 12L, 23L) != 12L) + return 1; + return 0; +} diff --git a/gcc/testsuite/gcc.dg/torture/addlgtu.c b/gcc/testsuite/gcc.dg/torture/addlgtu.c new file mode 100644 index 00000000000..20e7e02f22e --- /dev/null +++ b/gcc/testsuite/gcc.dg/torture/addlgtu.c @@ -0,0 +1,31 @@ +/* { dg-do run } */ + +typedef unsigned long int_t; + +__attribute__ ((noinline)) int_t +addlgtu (int_t w, int_t x, int_t y, int_t z) +{ + return w > x ? y + z : y; +} + +int +main (void) +{ + if (addlgtu (-1L, -1L, 12L, 23L) != 12L) + return 1; + if (addlgtu (-1L, 3L, 12L, 23L) != 35L) + return 1; + if (addlgtu (1L, 3L, 12L, 23L) != 12L) + return 1; + if (addlgtu (3L, 3L, 12L, 23L) != 12L) + return 1; + if (addlgtu (5L, 3L, 12L, 23L) != 35L) + return 1; + if (addlgtu (3L, -1L, 12L, 23L) != 12L) + return 1; + if (addlgtu (3L, 1L, 12L, 23L) != 35L) + return 1; + if (addlgtu (3L, 5L, 12L, 23L) != 12L) + return 1; + return 0; +} diff --git a/gcc/testsuite/gcc.dg/torture/addlle.c b/gcc/testsuite/gcc.dg/torture/addlle.c new file mode 100644 index 00000000000..108e0725e6c --- /dev/null +++ b/gcc/testsuite/gcc.dg/torture/addlle.c @@ -0,0 +1,31 @@ +/* { dg-do run } */ + +typedef long int_t; + +__attribute__ ((noinline)) int_t +addlle (int_t w, int_t x, int_t y, int_t z) +{ + return w <= x ? y + z : y; +} + +int +main (void) +{ + if (addlle (-1L, -1L, 12L, 23L) != 35L) + return 1; + if (addlle (-1L, 3L, 12L, 23L) != 35L) + return 1; + if (addlle (1L, 3L, 12L, 23L) != 35L) + return 1; + if (addlle (3L, 3L, 12L, 23L) != 35L) + return 1; + if (addlle (5L, 3L, 12L, 23L) != 12L) + return 1; + if (addlle (3L, -1L, 12L, 23L) != 12L) + return 1; + if (addlle (3L, 1L, 12L, 23L) != 12L) + return 1; + if (addlle (3L, 5L, 12L, 23L) != 35L) + return 1; + return 0; +} diff --git a/gcc/testsuite/gcc.dg/torture/addlleu.c b/gcc/testsuite/gcc.dg/torture/addlleu.c new file mode 100644 index 00000000000..b7542cd5de2 --- /dev/null +++ b/gcc/testsuite/gcc.dg/torture/addlleu.c @@ -0,0 +1,31 @@ +/* { dg-do run } */ + +typedef unsigned long int_t; + +__attribute__ ((noinline)) int_t +addlleu (int_t w, int_t x, int_t y, int_t z) +{ + return w <= x ? y + z : y; +} + +int +main (void) +{ + if (addlleu (-1L, -1L, 12L, 23L) != 35L) + return 1; + if (addlleu (-1L, 3L, 12L, 23L) != 12L) + return 1; + if (addlleu (1L, 3L, 12L, 23L) != 35L) + return 1; + if (addlleu (3L, 3L, 12L, 23L) != 35L) + return 1; + if (addlleu (5L, 3L, 12L, 23L) != 12L) + return 1; + if (addlleu (3L, -1L, 12L, 23L) != 35L) + return 1; + if (addlleu (3L, 1L, 12L, 23L) != 12L) + return 1; + if (addlleu (3L, 5L, 12L, 23L) != 35L) + return 1; + return 0; +} diff --git a/gcc/testsuite/gcc.dg/torture/addllt.c b/gcc/testsuite/gcc.dg/torture/addllt.c new file mode 100644 index 00000000000..b76ef8b67b4 --- /dev/null +++ b/gcc/testsuite/gcc.dg/torture/addllt.c @@ -0,0 +1,31 @@ +/* { dg-do run } */ + +typedef long int_t; + +__attribute__ ((noinline)) int_t +addllt (int_t w, int_t x, int_t y, int_t z) +{ + return w < x ? y + z : y; +} + +int +main (void) +{ + if (addllt (-1L, -1L, 12L, 23L) != 12L) + return 1; + if (addllt (-1L, 3L, 12L, 23L) != 35L) + return 1; + if (addllt (1L, 3L, 12L, 23L) != 35L) + return 1; + if (addllt (3L, 3L, 12L, 23L) != 12L) + return 1; + if (addllt (5L, 3L, 12L, 23L) != 12L) + return 1; + if (addllt (3L, -1L, 12L, 23L) != 12L) + return 1; + if (addllt (3L, 1L, 12L, 23L) != 12L) + return 1; + if (addllt (3L, 5L, 12L, 23L) != 35L) + return 1; + return 0; +} diff --git a/gcc/testsuite/gcc.dg/torture/addlltu.c b/gcc/testsuite/gcc.dg/torture/addlltu.c new file mode 100644 index 00000000000..e4c1ad743e3 --- /dev/null +++ b/gcc/testsuite/gcc.dg/torture/addlltu.c @@ -0,0 +1,31 @@ +/* { dg-do run } */ + +typedef unsigned long int_t; + +__attribute__ ((noinline)) int_t +addlltu (int_t w, int_t x, int_t y, int_t z) +{ + return w < x ? y + z : y; +} + +int +main (void) +{ + if (addlltu (-1L, -1L, 12L, 23L) != 12L) + return 1; + if (addlltu (-1L, 3L, 12L, 23L) != 12L) + return 1; + if (addlltu (1L, 3L, 12L, 23L) != 35L) + return 1; + if (addlltu (3L, 3L, 12L, 23L) != 12L) + return 1; + if (addlltu (5L, 3L, 12L, 23L) != 12L) + return 1; + if (addlltu (3L, -1L, 12L, 23L) != 35L) + return 1; + if (addlltu (3L, 1L, 12L, 23L) != 12L) + return 1; + if (addlltu (3L, 5L, 12L, 23L) != 35L) + return 1; + return 0; +} diff --git a/gcc/testsuite/gcc.dg/torture/addlne.c b/gcc/testsuite/gcc.dg/torture/addlne.c new file mode 100644 index 00000000000..9be07ab6c49 --- /dev/null +++ b/gcc/testsuite/gcc.dg/torture/addlne.c @@ -0,0 +1,31 @@ +/* { dg-do run } */ + +typedef long int_t; + +__attribute__ ((noinline)) int_t +addlne (int_t w, int_t x, int_t y, int_t z) +{ + return w != x ? y + z : y; +} + +int +main (void) +{ + if (addlne (-1L, -1L, 12L, 23L) != 12L) + return 1; + if (addlne (-1L, 3L, 12L, 23L) != 35L) + return 1; + if (addlne (1L, 3L, 12L, 23L) != 35L) + return 1; + if (addlne (3L, 3L, 12L, 23L) != 12L) + return 1; + if (addlne (5L, 3L, 12L, 23L) != 35L) + return 1; + if (addlne (3L, -1L, 12L, 23L) != 35L) + return 1; + if (addlne (3L, 1L, 12L, 23L) != 35L) + return 1; + if (addlne (3L, 5L, 12L, 23L) != 35L) + return 1; + return 0; +} diff --git a/gcc/testsuite/gcc.dg/torture/movieq.c b/gcc/testsuite/gcc.dg/torture/movieq.c new file mode 100644 index 00000000000..966dd5a383c --- /dev/null +++ b/gcc/testsuite/gcc.dg/torture/movieq.c @@ -0,0 +1,31 @@ +/* { dg-do run } */ + +typedef int int_t; + +__attribute__ ((noinline)) int_t +movieq (int_t w, int_t x, int_t y, int_t z) +{ + return w == x ? y : z; +} + +int +main (void) +{ + if (movieq (-1, -1, 12, 23) != 12) + return 1; + if (movieq (-1, 3, 12, 23) != 23) + return 1; + if (movieq (1, 3, 12, 23) != 23) + return 1; + if (movieq (3, 3, 12, 23) != 12) + return 1; + if (movieq (5, 3, 12, 23) != 23) + return 1; + if (movieq (3, -1, 12, 23) != 23) + return 1; + if (movieq (3, 1, 12, 23) != 23) + return 1; + if (movieq (3, 5, 12, 23) != 23) + return 1; + return 0; +} diff --git a/gcc/testsuite/gcc.dg/torture/movifeq.c b/gcc/testsuite/gcc.dg/torture/movifeq.c new file mode 100644 index 00000000000..7f143e5f50b --- /dev/null +++ b/gcc/testsuite/gcc.dg/torture/movifeq.c @@ -0,0 +1,31 @@ +/* { dg-do run } */ + +typedef int int_t; + +__attribute__ ((noinline)) int_t +movifeq (double w, double x, int_t y, int_t z) +{ + return w == x ? y : z; +} + +int +main (void) +{ + if (movifeq (-1.0, -1.0, 12, 23) != 12) + return 1; + if (movifeq (-1.0, 3.0, 12, 23) != 23) + return 1; + if (movifeq (1.0, 3.0, 12, 23) != 23) + return 1; + if (movifeq (3.0, 3.0, 12, 23) != 12) + return 1; + if (movifeq (5.0, 3.0, 12, 23) != 23) + return 1; + if (movifeq (3.0, -1.0, 12, 23) != 23) + return 1; + if (movifeq (3.0, 1.0, 12, 23) != 23) + return 1; + if (movifeq (3.0, 5.0, 12, 23) != 23) + return 1; + return 0; +} diff --git a/gcc/testsuite/gcc.dg/torture/movifge.c b/gcc/testsuite/gcc.dg/torture/movifge.c new file mode 100644 index 00000000000..af1904334c4 --- /dev/null +++ b/gcc/testsuite/gcc.dg/torture/movifge.c @@ -0,0 +1,31 @@ +/* { dg-do run } */ + +typedef int int_t; + +__attribute__ ((noinline)) int_t +movifge (double w, double x, int_t y, int_t z) +{ + return w >= x ? y : z; +} + +int +main (void) +{ + if (movifge (-1.0, -1.0, 12, 23) != 12) + return 1; + if (movifge (-1.0, 3.0, 12, 23) != 23) + return 1; + if (movifge (1.0, 3.0, 12, 23) != 23) + return 1; + if (movifge (3.0, 3.0, 12, 23) != 12) + return 1; + if (movifge (5.0, 3.0, 12, 23) != 12) + return 1; + if (movifge (3.0, -1.0, 12, 23) != 12) + return 1; + if (movifge (3.0, 1.0, 12, 23) != 12) + return 1; + if (movifge (3.0, 5.0, 12, 23) != 23) + return 1; + return 0; +} diff --git a/gcc/testsuite/gcc.dg/torture/movifgt.c b/gcc/testsuite/gcc.dg/torture/movifgt.c new file mode 100644 index 00000000000..bf8563f1595 --- /dev/null +++ b/gcc/testsuite/gcc.dg/torture/movifgt.c @@ -0,0 +1,31 @@ +/* { dg-do run } */ + +typedef int int_t; + +__attribute__ ((noinline)) int_t +movifgt (double w, double x, int_t y, int_t z) +{ + return w > x ? y : z; +} + +int +main (void) +{ + if (movifgt (-1.0, -1.0, 12, 23) != 23) + return 1; + if (movifgt (-1.0, 3.0, 12, 23) != 23) + return 1; + if (movifgt (1.0, 3.0, 12, 23) != 23) + return 1; + if (movifgt (3.0, 3.0, 12, 23) != 23) + return 1; + if (movifgt (5.0, 3.0, 12, 23) != 12) + return 1; + if (movifgt (3.0, -1.0, 12, 23) != 12) + return 1; + if (movifgt (3.0, 1.0, 12, 23) != 12) + return 1; + if (movifgt (3.0, 5.0, 12, 23) != 23) + return 1; + return 0; +} diff --git a/gcc/testsuite/gcc.dg/torture/movifle.c b/gcc/testsuite/gcc.dg/torture/movifle.c new file mode 100644 index 00000000000..c925804d091 --- /dev/null +++ b/gcc/testsuite/gcc.dg/torture/movifle.c @@ -0,0 +1,31 @@ +/* { dg-do run } */ + +typedef int int_t; + +__attribute__ ((noinline)) int_t +movifle (double w, double x, int_t y, int_t z) +{ + return w <= x ? y : z; +} + +int +main (void) +{ + if (movifle (-1.0, -1.0, 12, 23) != 12) + return 1; + if (movifle (-1.0, 3.0, 12, 23) != 12) + return 1; + if (movifle (1.0, 3.0, 12, 23) != 12) + return 1; + if (movifle (3.0, 3.0, 12, 23) != 12) + return 1; + if (movifle (5.0, 3.0, 12, 23) != 23) + return 1; + if (movifle (3.0, -1.0, 12, 23) != 23) + return 1; + if (movifle (3.0, 1.0, 12, 23) != 23) + return 1; + if (movifle (3.0, 5.0, 12, 23) != 12) + return 1; + return 0; +} diff --git a/gcc/testsuite/gcc.dg/torture/moviflt.c b/gcc/testsuite/gcc.dg/torture/moviflt.c new file mode 100644 index 00000000000..25f3ad4f589 --- /dev/null +++ b/gcc/testsuite/gcc.dg/torture/moviflt.c @@ -0,0 +1,31 @@ +/* { dg-do run } */ + +typedef int int_t; + +__attribute__ ((noinline)) int_t +moviflt (double w, double x, int_t y, int_t z) +{ + return w < x ? y : z; +} + +int +main (void) +{ + if (moviflt (-1.0, -1.0, 12, 23) != 23) + return 1; + if (moviflt (-1.0, 3.0, 12, 23) != 12) + return 1; + if (moviflt (1.0, 3.0, 12, 23) != 12) + return 1; + if (moviflt (3.0, 3.0, 12, 23) != 23) + return 1; + if (moviflt (5.0, 3.0, 12, 23) != 23) + return 1; + if (moviflt (3.0, -1.0, 12, 23) != 23) + return 1; + if (moviflt (3.0, 1.0, 12, 23) != 23) + return 1; + if (moviflt (3.0, 5.0, 12, 23) != 12) + return 1; + return 0; +} diff --git a/gcc/testsuite/gcc.dg/torture/movifne.c b/gcc/testsuite/gcc.dg/torture/movifne.c new file mode 100644 index 00000000000..6e76df36311 --- /dev/null +++ b/gcc/testsuite/gcc.dg/torture/movifne.c @@ -0,0 +1,31 @@ +/* { dg-do run } */ + +typedef int int_t; + +__attribute__ ((noinline)) int_t +movifne (double w, double x, int_t y, int_t z) +{ + return w != x ? y : z; +} + +int +main (void) +{ + if (movifne (-1.0, -1.0, 12, 23) != 23) + return 1; + if (movifne (-1.0, 3.0, 12, 23) != 12) + return 1; + if (movifne (1.0, 3.0, 12, 23) != 12) + return 1; + if (movifne (3.0, 3.0, 12, 23) != 23) + return 1; + if (movifne (5.0, 3.0, 12, 23) != 12) + return 1; + if (movifne (3.0, -1.0, 12, 23) != 12) + return 1; + if (movifne (3.0, 1.0, 12, 23) != 12) + return 1; + if (movifne (3.0, 5.0, 12, 23) != 12) + return 1; + return 0; +} diff --git a/gcc/testsuite/gcc.dg/torture/movige.c b/gcc/testsuite/gcc.dg/torture/movige.c new file mode 100644 index 00000000000..b4149b88304 --- /dev/null +++ b/gcc/testsuite/gcc.dg/torture/movige.c @@ -0,0 +1,31 @@ +/* { dg-do run } */ + +typedef int int_t; + +__attribute__ ((noinline)) int_t +movige (int_t w, int_t x, int_t y, int_t z) +{ + return w >= x ? y : z; +} + +int +main (void) +{ + if (movige (-1, -1, 12, 23) != 12) + return 1; + if (movige (-1, 3, 12, 23) != 23) + return 1; + if (movige (1, 3, 12, 23) != 23) + return 1; + if (movige (3, 3, 12, 23) != 12) + return 1; + if (movige (5, 3, 12, 23) != 12) + return 1; + if (movige (3, -1, 12, 23) != 12) + return 1; + if (movige (3, 1, 12, 23) != 12) + return 1; + if (movige (3, 5, 12, 23) != 23) + return 1; + return 0; +} diff --git a/gcc/testsuite/gcc.dg/torture/movigeu.c b/gcc/testsuite/gcc.dg/torture/movigeu.c new file mode 100644 index 00000000000..14df122495f --- /dev/null +++ b/gcc/testsuite/gcc.dg/torture/movigeu.c @@ -0,0 +1,31 @@ +/* { dg-do run } */ + +typedef unsigned int int_t; + +__attribute__ ((noinline)) int_t +movigeu (int_t w, int_t x, int_t y, int_t z) +{ + return w >= x ? y : z; +} + +int +main (void) +{ + if (movigeu (-1, -1, 12, 23) != 12) + return 1; + if (movigeu (-1, 3, 12, 23) != 12) + return 1; + if (movigeu (1, 3, 12, 23) != 23) + return 1; + if (movigeu (3, 3, 12, 23) != 12) + return 1; + if (movigeu (5, 3, 12, 23) != 12) + return 1; + if (movigeu (3, -1, 12, 23) != 23) + return 1; + if (movigeu (3, 1, 12, 23) != 12) + return 1; + if (movigeu (3, 5, 12, 23) != 23) + return 1; + return 0; +} diff --git a/gcc/testsuite/gcc.dg/torture/movigt.c b/gcc/testsuite/gcc.dg/torture/movigt.c new file mode 100644 index 00000000000..968401323f3 --- /dev/null +++ b/gcc/testsuite/gcc.dg/torture/movigt.c @@ -0,0 +1,31 @@ +/* { dg-do run } */ + +typedef int int_t; + +__attribute__ ((noinline)) int_t +movigt (int_t w, int_t x, int_t y, int_t z) +{ + return w > x ? y : z; +} + +int +main (void) +{ + if (movigt (-1, -1, 12, 23) != 23) + return 1; + if (movigt (-1, 3, 12, 23) != 23) + return 1; + if (movigt (1, 3, 12, 23) != 23) + return 1; + if (movigt (3, 3, 12, 23) != 23) + return 1; + if (movigt (5, 3, 12, 23) != 12) + return 1; + if (movigt (3, -1, 12, 23) != 12) + return 1; + if (movigt (3, 1, 12, 23) != 12) + return 1; + if (movigt (3, 5, 12, 23) != 23) + return 1; + return 0; +} diff --git a/gcc/testsuite/gcc.dg/torture/movigtu.c b/gcc/testsuite/gcc.dg/torture/movigtu.c new file mode 100644 index 00000000000..d620e8d5f45 --- /dev/null +++ b/gcc/testsuite/gcc.dg/torture/movigtu.c @@ -0,0 +1,31 @@ +/* { dg-do run } */ + +typedef unsigned int int_t; + +__attribute__ ((noinline)) int_t +movigtu (int_t w, int_t x, int_t y, int_t z) +{ + return w > x ? y : z; +} + +int +main (void) +{ + if (movigtu (-1, -1, 12, 23) != 23) + return 1; + if (movigtu (-1, 3, 12, 23) != 12) + return 1; + if (movigtu (1, 3, 12, 23) != 23) + return 1; + if (movigtu (3, 3, 12, 23) != 23) + return 1; + if (movigtu (5, 3, 12, 23) != 12) + return 1; + if (movigtu (3, -1, 12, 23) != 23) + return 1; + if (movigtu (3, 1, 12, 23) != 12) + return 1; + if (movigtu (3, 5, 12, 23) != 23) + return 1; + return 0; +} diff --git a/gcc/testsuite/gcc.dg/torture/movile.c b/gcc/testsuite/gcc.dg/torture/movile.c new file mode 100644 index 00000000000..c637d4fe3fc --- /dev/null +++ b/gcc/testsuite/gcc.dg/torture/movile.c @@ -0,0 +1,31 @@ +/* { dg-do run } */ + +typedef int int_t; + +__attribute__ ((noinline)) int_t +movile (int_t w, int_t x, int_t y, int_t z) +{ + return w <= x ? y : z; +} + +int +main (void) +{ + if (movile (-1, -1, 12, 23) != 12) + return 1; + if (movile (-1, 3, 12, 23) != 12) + return 1; + if (movile (1, 3, 12, 23) != 12) + return 1; + if (movile (3, 3, 12, 23) != 12) + return 1; + if (movile (5, 3, 12, 23) != 23) + return 1; + if (movile (3, -1, 12, 23) != 23) + return 1; + if (movile (3, 1, 12, 23) != 23) + return 1; + if (movile (3, 5, 12, 23) != 12) + return 1; + return 0; +} diff --git a/gcc/testsuite/gcc.dg/torture/movileu.c b/gcc/testsuite/gcc.dg/torture/movileu.c new file mode 100644 index 00000000000..ead65551fb3 --- /dev/null +++ b/gcc/testsuite/gcc.dg/torture/movileu.c @@ -0,0 +1,31 @@ +/* { dg-do run } */ + +typedef unsigned int int_t; + +__attribute__ ((noinline)) int_t +movileu (int_t w, int_t x, int_t y, int_t z) +{ + return w <= x ? y : z; +} + +int +main (void) +{ + if (movileu (-1, -1, 12, 23) != 12) + return 1; + if (movileu (-1, 3, 12, 23) != 23) + return 1; + if (movileu (1, 3, 12, 23) != 12) + return 1; + if (movileu (3, 3, 12, 23) != 12) + return 1; + if (movileu (5, 3, 12, 23) != 23) + return 1; + if (movileu (3, -1, 12, 23) != 12) + return 1; + if (movileu (3, 1, 12, 23) != 23) + return 1; + if (movileu (3, 5, 12, 23) != 12) + return 1; + return 0; +} diff --git a/gcc/testsuite/gcc.dg/torture/movilt.c b/gcc/testsuite/gcc.dg/torture/movilt.c new file mode 100644 index 00000000000..3ff3b7e8085 --- /dev/null +++ b/gcc/testsuite/gcc.dg/torture/movilt.c @@ -0,0 +1,31 @@ +/* { dg-do run } */ + +typedef int int_t; + +__attribute__ ((noinline)) int_t +movilt (int_t w, int_t x, int_t y, int_t z) +{ + return w < x ? y : z; +} + +int +main (void) +{ + if (movilt (-1, -1, 12, 23) != 23) + return 1; + if (movilt (-1, 3, 12, 23) != 12) + return 1; + if (movilt (1, 3, 12, 23) != 12) + return 1; + if (movilt (3, 3, 12, 23) != 23) + return 1; + if (movilt (5, 3, 12, 23) != 23) + return 1; + if (movilt (3, -1, 12, 23) != 23) + return 1; + if (movilt (3, 1, 12, 23) != 23) + return 1; + if (movilt (3, 5, 12, 23) != 12) + return 1; + return 0; +} diff --git a/gcc/testsuite/gcc.dg/torture/moviltu.c b/gcc/testsuite/gcc.dg/torture/moviltu.c new file mode 100644 index 00000000000..9679e375104 --- /dev/null +++ b/gcc/testsuite/gcc.dg/torture/moviltu.c @@ -0,0 +1,31 @@ +/* { dg-do run } */ + +typedef unsigned int int_t; + +__attribute__ ((noinline)) int_t +moviltu (int_t w, int_t x, int_t y, int_t z) +{ + return w < x ? y : z; +} + +int +main (void) +{ + if (moviltu (-1, -1, 12, 23) != 23) + return 1; + if (moviltu (-1, 3, 12, 23) != 23) + return 1; + if (moviltu (1, 3, 12, 23) != 12) + return 1; + if (moviltu (3, 3, 12, 23) != 23) + return 1; + if (moviltu (5, 3, 12, 23) != 23) + return 1; + if (moviltu (3, -1, 12, 23) != 12) + return 1; + if (moviltu (3, 1, 12, 23) != 23) + return 1; + if (moviltu (3, 5, 12, 23) != 12) + return 1; + return 0; +} diff --git a/gcc/testsuite/gcc.dg/torture/movine.c b/gcc/testsuite/gcc.dg/torture/movine.c new file mode 100644 index 00000000000..fc6f9b01971 --- /dev/null +++ b/gcc/testsuite/gcc.dg/torture/movine.c @@ -0,0 +1,31 @@ +/* { dg-do run } */ + +typedef int int_t; + +__attribute__ ((noinline)) int_t +movine (int_t w, int_t x, int_t y, int_t z) +{ + return w != x ? y : z; +} + +int +main (void) +{ + if (movine (-1, -1, 12, 23) != 23) + return 1; + if (movine (-1, 3, 12, 23) != 12) + return 1; + if (movine (1, 3, 12, 23) != 12) + return 1; + if (movine (3, 3, 12, 23) != 23) + return 1; + if (movine (5, 3, 12, 23) != 12) + return 1; + if (movine (3, -1, 12, 23) != 12) + return 1; + if (movine (3, 1, 12, 23) != 12) + return 1; + if (movine (3, 5, 12, 23) != 12) + return 1; + return 0; +} diff --git a/gcc/testsuite/gcc.dg/torture/movleq.c b/gcc/testsuite/gcc.dg/torture/movleq.c new file mode 100644 index 00000000000..2c773fe76bb --- /dev/null +++ b/gcc/testsuite/gcc.dg/torture/movleq.c @@ -0,0 +1,31 @@ +/* { dg-do run } */ + +typedef long int_t; + +__attribute__ ((noinline)) int_t +movleq (int_t w, int_t x, int_t y, int_t z) +{ + return w == x ? y : z; +} + +int +main (void) +{ + if (movleq (-1L, -1L, 12L, 23L) != 12L) + return 1; + if (movleq (-1L, 3L, 12L, 23L) != 23L) + return 1; + if (movleq (1L, 3L, 12L, 23L) != 23L) + return 1; + if (movleq (3L, 3L, 12L, 23L) != 12L) + return 1; + if (movleq (5L, 3L, 12L, 23L) != 23L) + return 1; + if (movleq (3L, -1L, 12L, 23L) != 23L) + return 1; + if (movleq (3L, 1L, 12L, 23L) != 23L) + return 1; + if (movleq (3L, 5L, 12L, 23L) != 23L) + return 1; + return 0; +} diff --git a/gcc/testsuite/gcc.dg/torture/movlfeq.c b/gcc/testsuite/gcc.dg/torture/movlfeq.c new file mode 100644 index 00000000000..96c3efcfdd5 --- /dev/null +++ b/gcc/testsuite/gcc.dg/torture/movlfeq.c @@ -0,0 +1,31 @@ +/* { dg-do run } */ + +typedef long int_t; + +__attribute__ ((noinline)) int_t +movlfeq (double w, double x, int_t y, int_t z) +{ + return w == x ? y : z; +} + +int +main (void) +{ + if (movlfeq (-1.0, -1.0, 12L, 23L) != 12L) + return 1; + if (movlfeq (-1.0, 3.0, 12L, 23L) != 23L) + return 1; + if (movlfeq (1.0, 3.0, 12L, 23L) != 23L) + return 1; + if (movlfeq (3.0, 3.0, 12L, 23L) != 12L) + return 1; + if (movlfeq (5.0, 3.0, 12L, 23L) != 23L) + return 1; + if (movlfeq (3.0, -1.0, 12L, 23L) != 23L) + return 1; + if (movlfeq (3.0, 1.0, 12L, 23L) != 23L) + return 1; + if (movlfeq (3.0, 5.0, 12L, 23L) != 23L) + return 1; + return 0; +} diff --git a/gcc/testsuite/gcc.dg/torture/movlfge.c b/gcc/testsuite/gcc.dg/torture/movlfge.c new file mode 100644 index 00000000000..118c0a64cb9 --- /dev/null +++ b/gcc/testsuite/gcc.dg/torture/movlfge.c @@ -0,0 +1,31 @@ +/* { dg-do run } */ + +typedef long int_t; + +__attribute__ ((noinline)) int_t +movlfge (double w, double x, int_t y, int_t z) +{ + return w >= x ? y : z; +} + +int +main (void) +{ + if (movlfge (-1.0, -1.0, 12L, 23L) != 12L) + return 1; + if (movlfge (-1.0, 3.0, 12L, 23L) != 23L) + return 1; + if (movlfge (1.0, 3.0, 12L, 23L) != 23L) + return 1; + if (movlfge (3.0, 3.0, 12L, 23L) != 12L) + return 1; + if (movlfge (5.0, 3.0, 12L, 23L) != 12L) + return 1; + if (movlfge (3.0, -1.0, 12L, 23L) != 12L) + return 1; + if (movlfge (3.0, 1.0, 12L, 23L) != 12L) + return 1; + if (movlfge (3.0, 5.0, 12L, 23L) != 23L) + return 1; + return 0; +} diff --git a/gcc/testsuite/gcc.dg/torture/movlfgt.c b/gcc/testsuite/gcc.dg/torture/movlfgt.c new file mode 100644 index 00000000000..48ab58b3aa5 --- /dev/null +++ b/gcc/testsuite/gcc.dg/torture/movlfgt.c @@ -0,0 +1,31 @@ +/* { dg-do run } */ + +typedef long int_t; + +__attribute__ ((noinline)) int_t +movlfgt (double w, double x, int_t y, int_t z) +{ + return w > x ? y : z; +} + +int +main (void) +{ + if (movlfgt (-1.0, -1.0, 12L, 23L) != 23L) + return 1; + if (movlfgt (-1.0, 3.0, 12L, 23L) != 23L) + return 1; + if (movlfgt (1.0, 3.0, 12L, 23L) != 23L) + return 1; + if (movlfgt (3.0, 3.0, 12L, 23L) != 23L) + return 1; + if (movlfgt (5.0, 3.0, 12L, 23L) != 12L) + return 1; + if (movlfgt (3.0, -1.0, 12L, 23L) != 12L) + return 1; + if (movlfgt (3.0, 1.0, 12L, 23L) != 12L) + return 1; + if (movlfgt (3.0, 5.0, 12L, 23L) != 23L) + return 1; + return 0; +} diff --git a/gcc/testsuite/gcc.dg/torture/movlfle.c b/gcc/testsuite/gcc.dg/torture/movlfle.c new file mode 100644 index 00000000000..940a7e03d27 --- /dev/null +++ b/gcc/testsuite/gcc.dg/torture/movlfle.c @@ -0,0 +1,31 @@ +/* { dg-do run } */ + +typedef long int_t; + +__attribute__ ((noinline)) int_t +movlfle (double w, double x, int_t y, int_t z) +{ + return w <= x ? y : z; +} + +int +main (void) +{ + if (movlfle (-1.0, -1.0, 12L, 23L) != 12L) + return 1; + if (movlfle (-1.0, 3.0, 12L, 23L) != 12L) + return 1; + if (movlfle (1.0, 3.0, 12L, 23L) != 12L) + return 1; + if (movlfle (3.0, 3.0, 12L, 23L) != 12L) + return 1; + if (movlfle (5.0, 3.0, 12L, 23L) != 23L) + return 1; + if (movlfle (3.0, -1.0, 12L, 23L) != 23L) + return 1; + if (movlfle (3.0, 1.0, 12L, 23L) != 23L) + return 1; + if (movlfle (3.0, 5.0, 12L, 23L) != 12L) + return 1; + return 0; +} diff --git a/gcc/testsuite/gcc.dg/torture/movlflt.c b/gcc/testsuite/gcc.dg/torture/movlflt.c new file mode 100644 index 00000000000..fc7f102ba8d --- /dev/null +++ b/gcc/testsuite/gcc.dg/torture/movlflt.c @@ -0,0 +1,31 @@ +/* { dg-do run } */ + +typedef long int_t; + +__attribute__ ((noinline)) int_t +movlflt (double w, double x, int_t y, int_t z) +{ + return w < x ? y : z; +} + +int +main (void) +{ + if (movlflt (-1.0, -1.0, 12L, 23L) != 23L) + return 1; + if (movlflt (-1.0, 3.0, 12L, 23L) != 12L) + return 1; + if (movlflt (1.0, 3.0, 12L, 23L) != 12L) + return 1; + if (movlflt (3.0, 3.0, 12L, 23L) != 23L) + return 1; + if (movlflt (5.0, 3.0, 12L, 23L) != 23L) + return 1; + if (movlflt (3.0, -1.0, 12L, 23L) != 23L) + return 1; + if (movlflt (3.0, 1.0, 12L, 23L) != 23L) + return 1; + if (movlflt (3.0, 5.0, 12L, 23L) != 12L) + return 1; + return 0; +} diff --git a/gcc/testsuite/gcc.dg/torture/movlfne.c b/gcc/testsuite/gcc.dg/torture/movlfne.c new file mode 100644 index 00000000000..088fa258ced --- /dev/null +++ b/gcc/testsuite/gcc.dg/torture/movlfne.c @@ -0,0 +1,31 @@ +/* { dg-do run } */ + +typedef long int_t; + +__attribute__ ((noinline)) int_t +movlfne (double w, double x, int_t y, int_t z) +{ + return w != x ? y : z; +} + +int +main (void) +{ + if (movlfne (-1.0, -1.0, 12L, 23L) != 23L) + return 1; + if (movlfne (-1.0, 3.0, 12L, 23L) != 12L) + return 1; + if (movlfne (1.0, 3.0, 12L, 23L) != 12L) + return 1; + if (movlfne (3.0, 3.0, 12L, 23L) != 23L) + return 1; + if (movlfne (5.0, 3.0, 12L, 23L) != 12L) + return 1; + if (movlfne (3.0, -1.0, 12L, 23L) != 12L) + return 1; + if (movlfne (3.0, 1.0, 12L, 23L) != 12L) + return 1; + if (movlfne (3.0, 5.0, 12L, 23L) != 12L) + return 1; + return 0; +} diff --git a/gcc/testsuite/gcc.dg/torture/movlge.c b/gcc/testsuite/gcc.dg/torture/movlge.c new file mode 100644 index 00000000000..34798e2ea41 --- /dev/null +++ b/gcc/testsuite/gcc.dg/torture/movlge.c @@ -0,0 +1,31 @@ +/* { dg-do run } */ + +typedef long int_t; + +__attribute__ ((noinline)) int_t +movlge (int_t w, int_t x, int_t y, int_t z) +{ + return w >= x ? y : z; +} + +int +main (void) +{ + if (movlge (-1L, -1L, 12L, 23L) != 12L) + return 1; + if (movlge (-1L, 3L, 12L, 23L) != 23L) + return 1; + if (movlge (1L, 3L, 12L, 23L) != 23L) + return 1; + if (movlge (3L, 3L, 12L, 23L) != 12L) + return 1; + if (movlge (5L, 3L, 12L, 23L) != 12L) + return 1; + if (movlge (3L, -1L, 12L, 23L) != 12L) + return 1; + if (movlge (3L, 1L, 12L, 23L) != 12L) + return 1; + if (movlge (3L, 5L, 12L, 23L) != 23L) + return 1; + return 0; +} diff --git a/gcc/testsuite/gcc.dg/torture/movlgeu.c b/gcc/testsuite/gcc.dg/torture/movlgeu.c new file mode 100644 index 00000000000..2895556612c --- /dev/null +++ b/gcc/testsuite/gcc.dg/torture/movlgeu.c @@ -0,0 +1,31 @@ +/* { dg-do run } */ + +typedef unsigned long int_t; + +__attribute__ ((noinline)) int_t +movlgeu (int_t w, int_t x, int_t y, int_t z) +{ + return w >= x ? y : z; +} + +int +main (void) +{ + if (movlgeu (-1L, -1L, 12L, 23L) != 12L) + return 1; + if (movlgeu (-1L, 3L, 12L, 23L) != 12L) + return 1; + if (movlgeu (1L, 3L, 12L, 23L) != 23L) + return 1; + if (movlgeu (3L, 3L, 12L, 23L) != 12L) + return 1; + if (movlgeu (5L, 3L, 12L, 23L) != 12L) + return 1; + if (movlgeu (3L, -1L, 12L, 23L) != 23L) + return 1; + if (movlgeu (3L, 1L, 12L, 23L) != 12L) + return 1; + if (movlgeu (3L, 5L, 12L, 23L) != 23L) + return 1; + return 0; +} diff --git a/gcc/testsuite/gcc.dg/torture/movlgt.c b/gcc/testsuite/gcc.dg/torture/movlgt.c new file mode 100644 index 00000000000..ab6ce0b155b --- /dev/null +++ b/gcc/testsuite/gcc.dg/torture/movlgt.c @@ -0,0 +1,31 @@ +/* { dg-do run } */ + +typedef long int_t; + +__attribute__ ((noinline)) int_t +movlgt (int_t w, int_t x, int_t y, int_t z) +{ + return w > x ? y : z; +} + +int +main (void) +{ + if (movlgt (-1L, -1L, 12L, 23L) != 23L) + return 1; + if (movlgt (-1L, 3L, 12L, 23L) != 23L) + return 1; + if (movlgt (1L, 3L, 12L, 23L) != 23L) + return 1; + if (movlgt (3L, 3L, 12L, 23L) != 23L) + return 1; + if (movlgt (5L, 3L, 12L, 23L) != 12L) + return 1; + if (movlgt (3L, -1L, 12L, 23L) != 12L) + return 1; + if (movlgt (3L, 1L, 12L, 23L) != 12L) + return 1; + if (movlgt (3L, 5L, 12L, 23L) != 23L) + return 1; + return 0; +} diff --git a/gcc/testsuite/gcc.dg/torture/movlgtu.c b/gcc/testsuite/gcc.dg/torture/movlgtu.c new file mode 100644 index 00000000000..c43f04c5705 --- /dev/null +++ b/gcc/testsuite/gcc.dg/torture/movlgtu.c @@ -0,0 +1,31 @@ +/* { dg-do run } */ + +typedef unsigned long int_t; + +__attribute__ ((noinline)) int_t +movlgtu (int_t w, int_t x, int_t y, int_t z) +{ + return w > x ? y : z; +} + +int +main (void) +{ + if (movlgtu (-1L, -1L, 12L, 23L) != 23L) + return 1; + if (movlgtu (-1L, 3L, 12L, 23L) != 12L) + return 1; + if (movlgtu (1L, 3L, 12L, 23L) != 23L) + return 1; + if (movlgtu (3L, 3L, 12L, 23L) != 23L) + return 1; + if (movlgtu (5L, 3L, 12L, 23L) != 12L) + return 1; + if (movlgtu (3L, -1L, 12L, 23L) != 23L) + return 1; + if (movlgtu (3L, 1L, 12L, 23L) != 12L) + return 1; + if (movlgtu (3L, 5L, 12L, 23L) != 23L) + return 1; + return 0; +} diff --git a/gcc/testsuite/gcc.dg/torture/movlle.c b/gcc/testsuite/gcc.dg/torture/movlle.c new file mode 100644 index 00000000000..81a9d6f4875 --- /dev/null +++ b/gcc/testsuite/gcc.dg/torture/movlle.c @@ -0,0 +1,31 @@ +/* { dg-do run } */ + +typedef long int_t; + +__attribute__ ((noinline)) int_t +movlle (int_t w, int_t x, int_t y, int_t z) +{ + return w <= x ? y : z; +} + +int +main (void) +{ + if (movlle (-1L, -1L, 12L, 23L) != 12L) + return 1; + if (movlle (-1L, 3L, 12L, 23L) != 12L) + return 1; + if (movlle (1L, 3L, 12L, 23L) != 12L) + return 1; + if (movlle (3L, 3L, 12L, 23L) != 12L) + return 1; + if (movlle (5L, 3L, 12L, 23L) != 23L) + return 1; + if (movlle (3L, -1L, 12L, 23L) != 23L) + return 1; + if (movlle (3L, 1L, 12L, 23L) != 23L) + return 1; + if (movlle (3L, 5L, 12L, 23L) != 12L) + return 1; + return 0; +} diff --git a/gcc/testsuite/gcc.dg/torture/movlleu.c b/gcc/testsuite/gcc.dg/torture/movlleu.c new file mode 100644 index 00000000000..6d46fdb1d8c --- /dev/null +++ b/gcc/testsuite/gcc.dg/torture/movlleu.c @@ -0,0 +1,31 @@ +/* { dg-do run } */ + +typedef unsigned long int_t; + +__attribute__ ((noinline)) int_t +movlleu (int_t w, int_t x, int_t y, int_t z) +{ + return w <= x ? y : z; +} + +int +main (void) +{ + if (movlleu (-1L, -1L, 12L, 23L) != 12L) + return 1; + if (movlleu (-1L, 3L, 12L, 23L) != 23L) + return 1; + if (movlleu (1L, 3L, 12L, 23L) != 12L) + return 1; + if (movlleu (3L, 3L, 12L, 23L) != 12L) + return 1; + if (movlleu (5L, 3L, 12L, 23L) != 23L) + return 1; + if (movlleu (3L, -1L, 12L, 23L) != 12L) + return 1; + if (movlleu (3L, 1L, 12L, 23L) != 23L) + return 1; + if (movlleu (3L, 5L, 12L, 23L) != 12L) + return 1; + return 0; +} diff --git a/gcc/testsuite/gcc.dg/torture/movllt.c b/gcc/testsuite/gcc.dg/torture/movllt.c new file mode 100644 index 00000000000..ee32669836b --- /dev/null +++ b/gcc/testsuite/gcc.dg/torture/movllt.c @@ -0,0 +1,31 @@ +/* { dg-do run } */ + +typedef long int_t; + +__attribute__ ((noinline)) int_t +movllt (int_t w, int_t x, int_t y, int_t z) +{ + return w < x ? y : z; +} + +int +main (void) +{ + if (movllt (-1L, -1L, 12L, 23L) != 23L) + return 1; + if (movllt (-1L, 3L, 12L, 23L) != 12L) + return 1; + if (movllt (1L, 3L, 12L, 23L) != 12L) + return 1; + if (movllt (3L, 3L, 12L, 23L) != 23L) + return 1; + if (movllt (5L, 3L, 12L, 23L) != 23L) + return 1; + if (movllt (3L, -1L, 12L, 23L) != 23L) + return 1; + if (movllt (3L, 1L, 12L, 23L) != 23L) + return 1; + if (movllt (3L, 5L, 12L, 23L) != 12L) + return 1; + return 0; +} diff --git a/gcc/testsuite/gcc.dg/torture/movlltu.c b/gcc/testsuite/gcc.dg/torture/movlltu.c new file mode 100644 index 00000000000..0a854da3e67 --- /dev/null +++ b/gcc/testsuite/gcc.dg/torture/movlltu.c @@ -0,0 +1,31 @@ +/* { dg-do run } */ + +typedef unsigned long int_t; + +__attribute__ ((noinline)) int_t +movlltu (int_t w, int_t x, int_t y, int_t z) +{ + return w < x ? y : z; +} + +int +main (void) +{ + if (movlltu (-1L, -1L, 12L, 23L) != 23L) + return 1; + if (movlltu (-1L, 3L, 12L, 23L) != 23L) + return 1; + if (movlltu (1L, 3L, 12L, 23L) != 12L) + return 1; + if (movlltu (3L, 3L, 12L, 23L) != 23L) + return 1; + if (movlltu (5L, 3L, 12L, 23L) != 23L) + return 1; + if (movlltu (3L, -1L, 12L, 23L) != 12L) + return 1; + if (movlltu (3L, 1L, 12L, 23L) != 23L) + return 1; + if (movlltu (3L, 5L, 12L, 23L) != 12L) + return 1; + return 0; +} diff --git a/gcc/testsuite/gcc.dg/torture/movlne.c b/gcc/testsuite/gcc.dg/torture/movlne.c new file mode 100644 index 00000000000..d8f81a4b70a --- /dev/null +++ b/gcc/testsuite/gcc.dg/torture/movlne.c @@ -0,0 +1,31 @@ +/* { dg-do run } */ + +typedef long int_t; + +__attribute__ ((noinline)) int_t +movlne (int_t w, int_t x, int_t y, int_t z) +{ + return w != x ? y : z; +} + +int +main (void) +{ + if (movlne (-1L, -1L, 12L, 23L) != 23L) + return 1; + if (movlne (-1L, 3L, 12L, 23L) != 12L) + return 1; + if (movlne (1L, 3L, 12L, 23L) != 12L) + return 1; + if (movlne (3L, 3L, 12L, 23L) != 23L) + return 1; + if (movlne (5L, 3L, 12L, 23L) != 12L) + return 1; + if (movlne (3L, -1L, 12L, 23L) != 12L) + return 1; + if (movlne (3L, 1L, 12L, 23L) != 12L) + return 1; + if (movlne (3L, 5L, 12L, 23L) != 12L) + return 1; + return 0; +}
reply other threads:[~2023-11-22 5:08 UTC|newest] Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20231122050857.851A23858C20@sourceware.org \ --to=law@gcc.gnu.org \ --cc=gcc-cvs@gcc.gnu.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).