From 33648f1fbee9442190bb85fae1192b7b119daf81 Mon Sep 17 00:00:00 2001 From: David Monniaux Date: Sat, 16 Mar 2019 16:48:54 +0100 Subject: some more nand --- test/monniaux/nand/nand.c | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 test/monniaux/nand/nand.c (limited to 'test/monniaux/nand') diff --git a/test/monniaux/nand/nand.c b/test/monniaux/nand/nand.c new file mode 100644 index 00000000..002c2368 --- /dev/null +++ b/test/monniaux/nand/nand.c @@ -0,0 +1,3 @@ +unsigned not(unsigned x) { + return ~x; +} -- cgit From 8155320553564674b7481b325c33845439b46b95 Mon Sep 17 00:00:00 2001 From: David Monniaux Date: Sat, 16 Mar 2019 17:06:16 +0100 Subject: nand is implemented --- test/monniaux/nand/nand.c | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'test/monniaux/nand') diff --git a/test/monniaux/nand/nand.c b/test/monniaux/nand/nand.c index 002c2368..bcd30396 100644 --- a/test/monniaux/nand/nand.c +++ b/test/monniaux/nand/nand.c @@ -1,3 +1,14 @@ +#include + unsigned not(unsigned x) { return ~x; } + +unsigned nand(unsigned x, unsigned y) { + return ~(x & y); +} + +int main() { + unsigned x = 0xF4, y = 0x33; + printf("%X\n", nand(x, y)); +} -- cgit From 4e3b46ca2a30abf520672f4b1a28f91f171f6e7e Mon Sep 17 00:00:00 2001 From: David Monniaux Date: Sat, 16 Mar 2019 18:24:03 +0100 Subject: nor implemente --- test/monniaux/nand/nand.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'test/monniaux/nand') diff --git a/test/monniaux/nand/nand.c b/test/monniaux/nand/nand.c index bcd30396..86cf84bd 100644 --- a/test/monniaux/nand/nand.c +++ b/test/monniaux/nand/nand.c @@ -8,7 +8,11 @@ unsigned nand(unsigned x, unsigned y) { return ~(x & y); } +unsigned nor(unsigned x, unsigned y) { + return ~(x | y); +} + int main() { unsigned x = 0xF4, y = 0x33; - printf("%X\n", nand(x, y)); + printf("%X\n", nor(x, y)); } -- cgit From 2227019e15866870f87488630f17cbb0797d1786 Mon Sep 17 00:00:00 2001 From: David Monniaux Date: Sat, 16 Mar 2019 19:00:55 +0100 Subject: nxor --- test/monniaux/nand/nand.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'test/monniaux/nand') diff --git a/test/monniaux/nand/nand.c b/test/monniaux/nand/nand.c index 86cf84bd..f808f311 100644 --- a/test/monniaux/nand/nand.c +++ b/test/monniaux/nand/nand.c @@ -12,7 +12,11 @@ unsigned nor(unsigned x, unsigned y) { return ~(x | y); } +unsigned nxor(unsigned x, unsigned y) { + return ~(x ^ y); +} + int main() { unsigned x = 0xF4, y = 0x33; - printf("%X\n", nor(x, y)); + printf("%X\n", nxor(x, y)); } -- cgit From 7ab24b18b1c9a08b0d092c2c8144ee7b3a029c1d Mon Sep 17 00:00:00 2001 From: David Monniaux Date: Sat, 16 Mar 2019 19:47:03 +0100 Subject: long nand, nor, nxor --- test/monniaux/nand/nand.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) (limited to 'test/monniaux/nand') diff --git a/test/monniaux/nand/nand.c b/test/monniaux/nand/nand.c index f808f311..9c2d2298 100644 --- a/test/monniaux/nand/nand.c +++ b/test/monniaux/nand/nand.c @@ -1,22 +1,24 @@ #include -unsigned not(unsigned x) { +typedef unsigned long scalar; + +scalar not(scalar x) { return ~x; } -unsigned nand(unsigned x, unsigned y) { +scalar nand(scalar x, scalar y) { return ~(x & y); } -unsigned nor(unsigned x, unsigned y) { +scalar nor(scalar x, scalar y) { return ~(x | y); } -unsigned nxor(unsigned x, unsigned y) { +scalar nxor(scalar x, scalar y) { return ~(x ^ y); } int main() { - unsigned x = 0xF4, y = 0x33; + scalar x = 0xF4, y = 0x33; printf("%X\n", nxor(x, y)); } -- cgit From 6cd9c6faecaa830160fbca31924e29a5e791f499 Mon Sep 17 00:00:00 2001 From: David Monniaux Date: Mon, 18 Mar 2019 13:56:32 +0100 Subject: andn / orn long complete I think --- test/monniaux/nand/nand.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'test/monniaux/nand') diff --git a/test/monniaux/nand/nand.c b/test/monniaux/nand/nand.c index 9c2d2298..379a1bad 100644 --- a/test/monniaux/nand/nand.c +++ b/test/monniaux/nand/nand.c @@ -18,6 +18,22 @@ scalar nxor(scalar x, scalar y) { return ~(x ^ y); } +scalar andn1(scalar x, scalar y) { + return ~x & y; +} + +scalar andn2(scalar x, scalar y) { + return x & ~y; +} + +scalar orn1(scalar x, scalar y) { + return ~x | y; +} + +scalar orn2(scalar x, scalar y) { + return x | ~y; +} + int main() { scalar x = 0xF4, y = 0x33; printf("%X\n", nxor(x, y)); -- cgit From 56249c0fa5aa96767ce3fd9be76b8a9e7bef0231 Mon Sep 17 00:00:00 2001 From: David Monniaux Date: Fri, 12 Apr 2019 12:30:49 +0200 Subject: some more simplifications --- test/monniaux/nand/nand.c | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'test/monniaux/nand') diff --git a/test/monniaux/nand/nand.c b/test/monniaux/nand/nand.c index 379a1bad..e628c1cf 100644 --- a/test/monniaux/nand/nand.c +++ b/test/monniaux/nand/nand.c @@ -34,6 +34,14 @@ scalar orn2(scalar x, scalar y) { return x | ~y; } +scalar nandimm(scalar x) { + return ~x & 45; +} + +scalar notnot(scalar x) { + return ~ ~ x; +} + int main() { scalar x = 0xF4, y = 0x33; printf("%X\n", nxor(x, y)); -- cgit