From d52a401b30a7618c1b36cc1e6bd514c843136690 Mon Sep 17 00:00:00 2001 From: David Monniaux Date: Tue, 26 Mar 2019 20:51:34 +0100 Subject: ternary unsigned --- test/monniaux/ternary_builtin/ternary_builtin.c | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 test/monniaux/ternary_builtin/ternary_builtin.c (limited to 'test/monniaux/ternary_builtin') diff --git a/test/monniaux/ternary_builtin/ternary_builtin.c b/test/monniaux/ternary_builtin/ternary_builtin.c new file mode 100644 index 00000000..0267fea5 --- /dev/null +++ b/test/monniaux/ternary_builtin/ternary_builtin.c @@ -0,0 +1,7 @@ +int ternary_signed(int x, int v0, int v1) { + return ((-(x==0)) & v0) | ((-(x!=0)) & v1); +} + +int ternary_unsigned(unsigned x, int v0, int v1) { + return ((-(x==0)) & v0) | ((-(x!=0)) & v1); +} -- cgit From 0a42ed2c85b0d46333633dd12bbdbe559d2531c2 Mon Sep 17 00:00:00 2001 From: David Monniaux Date: Wed, 27 Mar 2019 06:39:48 +0100 Subject: essai du cmove --- test/monniaux/ternary_builtin/ternary_builtin.c | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'test/monniaux/ternary_builtin') diff --git a/test/monniaux/ternary_builtin/ternary_builtin.c b/test/monniaux/ternary_builtin/ternary_builtin.c index 0267fea5..caa1c4c7 100644 --- a/test/monniaux/ternary_builtin/ternary_builtin.c +++ b/test/monniaux/ternary_builtin/ternary_builtin.c @@ -5,3 +5,7 @@ int ternary_signed(int x, int v0, int v1) { int ternary_unsigned(unsigned x, int v0, int v1) { return ((-(x==0)) & v0) | ((-(x!=0)) & v1); } + +long ternary_signedl(long x, long v0, long v1) { + return ((-(x==0)) & v0) | ((-(x!=0)) & v1); +} -- cgit From 2dca62f38463b0ebce24fff50666c846df50488e Mon Sep 17 00:00:00 2001 From: David Monniaux Date: Wed, 3 Apr 2019 20:19:24 +0200 Subject: attempts at generating builtins, start --- test/monniaux/ternary_builtin/ternary_builtin.c | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) (limited to 'test/monniaux/ternary_builtin') diff --git a/test/monniaux/ternary_builtin/ternary_builtin.c b/test/monniaux/ternary_builtin/ternary_builtin.c index caa1c4c7..8052da0f 100644 --- a/test/monniaux/ternary_builtin/ternary_builtin.c +++ b/test/monniaux/ternary_builtin/ternary_builtin.c @@ -1,11 +1,3 @@ -int ternary_signed(int x, int v0, int v1) { - return ((-(x==0)) & v0) | ((-(x!=0)) & v1); -} - -int ternary_unsigned(unsigned x, int v0, int v1) { - return ((-(x==0)) & v0) | ((-(x!=0)) & v1); -} - -long ternary_signedl(long x, long v0, long v1) { - return ((-(x==0)) & v0) | ((-(x!=0)) & v1); +int essai(int x, unsigned y, unsigned z) { + return __builtin_ternary_uint(x, y, z); } -- cgit From 015a05d8661504388ea1109f740eb16220311f93 Mon Sep 17 00:00:00 2001 From: David Monniaux Date: Wed, 3 Apr 2019 20:44:16 +0200 Subject: begin implementing ternary builtin --- test/monniaux/ternary_builtin/ternary_builtin.c | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'test/monniaux/ternary_builtin') diff --git a/test/monniaux/ternary_builtin/ternary_builtin.c b/test/monniaux/ternary_builtin/ternary_builtin.c index 8052da0f..98497387 100644 --- a/test/monniaux/ternary_builtin/ternary_builtin.c +++ b/test/monniaux/ternary_builtin/ternary_builtin.c @@ -1,3 +1,10 @@ +#include + int essai(int x, unsigned y, unsigned z) { return __builtin_ternary_uint(x, y, z); } + +int main() { + printf("%d\n", essai(0, 42, 69)); + return 0; +} -- cgit From 4032ed3192424a23dbb0a4f3bd2a539b22625168 Mon Sep 17 00:00:00 2001 From: David Monniaux Date: Wed, 3 Apr 2019 21:00:46 +0200 Subject: problem in ValueAOp --- test/monniaux/ternary_builtin/ternary_builtin.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'test/monniaux/ternary_builtin') diff --git a/test/monniaux/ternary_builtin/ternary_builtin.c b/test/monniaux/ternary_builtin/ternary_builtin.c index 98497387..1295581c 100644 --- a/test/monniaux/ternary_builtin/ternary_builtin.c +++ b/test/monniaux/ternary_builtin/ternary_builtin.c @@ -1,10 +1,14 @@ #include -int essai(int x, unsigned y, unsigned z) { +unsigned essai(int x, unsigned y, unsigned z) { return __builtin_ternary_uint(x, y, z); } +unsigned long essai2(int x, unsigned long y, unsigned long z) { + return __builtin_ternary_ulong(x, y, z); +} + int main() { - printf("%d\n", essai(0, 42, 69)); + printf("%ld\n", essai2(0, 42, 69)); return 0; } -- cgit From ca34ea47f863c074a9d0ca890097786c5829267c Mon Sep 17 00:00:00 2001 From: David Monniaux Date: Wed, 3 Apr 2019 22:36:22 +0200 Subject: ternary ops for float/double --- test/monniaux/ternary_builtin/ternary_builtin.c | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) (limited to 'test/monniaux/ternary_builtin') diff --git a/test/monniaux/ternary_builtin/ternary_builtin.c b/test/monniaux/ternary_builtin/ternary_builtin.c index 1295581c..6ea456ab 100644 --- a/test/monniaux/ternary_builtin/ternary_builtin.c +++ b/test/monniaux/ternary_builtin/ternary_builtin.c @@ -1,14 +1,10 @@ #include +#include -unsigned essai(int x, unsigned y, unsigned z) { - return __builtin_ternary_uint(x, y, z); -} - -unsigned long essai2(int x, unsigned long y, unsigned long z) { - return __builtin_ternary_ulong(x, y, z); -} - -int main() { - printf("%ld\n", essai2(0, 42, 69)); +int main(int argc, char **argv) { + int i=0; + if (argc >= 2) i=atoi(argv[1]); + printf("%ld\n", __builtin_ternary_int(i, 42, 69)); + printf("%f\n", __builtin_ternary_double(i, 42.0, 69.0)); return 0; } -- cgit From 53b6eb437c7988b44e881c7b7a9df2e735ded0ea Mon Sep 17 00:00:00 2001 From: David Monniaux Date: Fri, 5 Apr 2019 06:03:21 +0200 Subject: select cmpu --- test/monniaux/ternary_builtin/ternary_builtin.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'test/monniaux/ternary_builtin') diff --git a/test/monniaux/ternary_builtin/ternary_builtin.c b/test/monniaux/ternary_builtin/ternary_builtin.c index 6ea456ab..7f2043ec 100644 --- a/test/monniaux/ternary_builtin/ternary_builtin.c +++ b/test/monniaux/ternary_builtin/ternary_builtin.c @@ -4,7 +4,7 @@ int main(int argc, char **argv) { int i=0; if (argc >= 2) i=atoi(argv[1]); - printf("%ld\n", __builtin_ternary_int(i, 42, 69)); + printf("%ld\n", __builtin_ternary_uint(i, 42, 69)); printf("%f\n", __builtin_ternary_double(i, 42.0, 69.0)); return 0; } -- cgit From 5075fa97d74731c1b7d92b6f8c122805788e6b40 Mon Sep 17 00:00:00 2001 From: David Monniaux Date: Sat, 6 Apr 2019 21:51:43 +0200 Subject: uses the pattern matching --- test/monniaux/ternary_builtin/ternary_builtin.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'test/monniaux/ternary_builtin') diff --git a/test/monniaux/ternary_builtin/ternary_builtin.c b/test/monniaux/ternary_builtin/ternary_builtin.c index 7f2043ec..218c5b28 100644 --- a/test/monniaux/ternary_builtin/ternary_builtin.c +++ b/test/monniaux/ternary_builtin/ternary_builtin.c @@ -1,10 +1,10 @@ #include #include +#include "../ternary.h" int main(int argc, char **argv) { int i=0; if (argc >= 2) i=atoi(argv[1]); - printf("%ld\n", __builtin_ternary_uint(i, 42, 69)); - printf("%f\n", __builtin_ternary_double(i, 42.0, 69.0)); + printf("%d\n",ternary_uint32(i, 42, 69)); return 0; } -- cgit