From c8813ac7a2c95913b710b87136209e6b2b43e399 Mon Sep 17 00:00:00 2001 From: Minseong Jang Date: Fri, 25 Mar 2022 14:40:59 +0900 Subject: [PATCH] Add complement example --- examples/c/complement.c | 6 ++++++ examples/ir0/complement.ir | 18 ++++++++++++++++++ examples/ir1/complement.ir | 15 +++++++++++++++ examples/ir2/complement.ir | 15 +++++++++++++++ examples/ir3/complement.ir | 13 +++++++++++++ examples/ir4/complement.ir | 13 +++++++++++++ 6 files changed, 80 insertions(+) create mode 100644 examples/c/complement.c create mode 100644 examples/ir0/complement.ir create mode 100644 examples/ir1/complement.ir create mode 100644 examples/ir2/complement.ir create mode 100644 examples/ir3/complement.ir create mode 100644 examples/ir4/complement.ir diff --git a/examples/c/complement.c b/examples/c/complement.c new file mode 100644 index 0000000..f63b1b0 --- /dev/null +++ b/examples/c/complement.c @@ -0,0 +1,6 @@ +int nonce = 1; // For random input + +int main() { + int a = ~nonce; + return a; +} diff --git a/examples/ir0/complement.ir b/examples/ir0/complement.ir new file mode 100644 index 0000000..16791da --- /dev/null +++ b/examples/ir0/complement.ir @@ -0,0 +1,18 @@ +var i32 @nonce = 1 + +fun i32 @main () { +init: + bid: b0 + allocations: + %l0:i32:a + +block b0: + %b0:i0:i32 = load @nonce:i32* + %b0:i1:i32 = xor %b0:i0:i32 -1:i32 + %b0:i2:unit = store %b0:i1:i32 %l0:i32* + %b0:i3:i32 = load %l0:i32* + ret %b0:i3:i32 + +block b1: + ret 0:i32 +} diff --git a/examples/ir1/complement.ir b/examples/ir1/complement.ir new file mode 100644 index 0000000..79fb18c --- /dev/null +++ b/examples/ir1/complement.ir @@ -0,0 +1,15 @@ +var i32 @nonce = 1 + +fun i32 @main () { +init: + bid: b0 + allocations: + %l0:i32:a + +block b0: + %b0:i0:i32 = load @nonce:i32* + %b0:i1:i32 = xor %b0:i0:i32 -1:i32 + %b0:i2:unit = store %b0:i1:i32 %l0:i32* + %b0:i3:i32 = load %l0:i32* + ret %b0:i3:i32 +} diff --git a/examples/ir2/complement.ir b/examples/ir2/complement.ir new file mode 100644 index 0000000..b8792aa --- /dev/null +++ b/examples/ir2/complement.ir @@ -0,0 +1,15 @@ +var i32 @nonce = 1 + +fun i32 @main () { +init: + bid: b0 + allocations: + %l0:i32:a + +block b0: + %b0:i0:i32 = load @nonce:i32* + %b0:i1:i32 = xor %b0:i0:i32 -1:i32 + %b0:i2:unit = nop + %b0:i3:unit = nop + ret %b0:i1:i32 +} diff --git a/examples/ir3/complement.ir b/examples/ir3/complement.ir new file mode 100644 index 0000000..1518125 --- /dev/null +++ b/examples/ir3/complement.ir @@ -0,0 +1,13 @@ +var i32 @nonce = 1 + +fun i32 @main () { +init: + bid: b0 + allocations: + + +block b0: + %b0:i0:i32 = load @nonce:i32* + %b0:i1:i32 = xor %b0:i0:i32 -1:i32 + ret %b0:i1:i32 +} diff --git a/examples/ir4/complement.ir b/examples/ir4/complement.ir new file mode 100644 index 0000000..1518125 --- /dev/null +++ b/examples/ir4/complement.ir @@ -0,0 +1,13 @@ +var i32 @nonce = 1 + +fun i32 @main () { +init: + bid: b0 + allocations: + + +block b0: + %b0:i0:i32 = load @nonce:i32* + %b0:i1:i32 = xor %b0:i0:i32 -1:i32 + ret %b0:i1:i32 +}