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 +}