diff --git a/examples/c/sizeof3.c b/examples/c/sizeof3.c new file mode 100644 index 0000000..5b3d3d7 --- /dev/null +++ b/examples/c/sizeof3.c @@ -0,0 +1,6 @@ +int main() { + int x = 3; + int y = sizeof(++x); + + return x; +} diff --git a/examples/ir0/sizeof2.ir b/examples/ir0/sizeof2.ir index 42b98ea..5518de3 100644 --- a/examples/ir0/sizeof2.ir +++ b/examples/ir0/sizeof2.ir @@ -34,14 +34,9 @@ block b3: ret %b3:i1:i32 block b4: - %b4:i0:i8 = load %l0:i8* - %b4:i1:i8 = load %l1:i8* - %b4:i2:i32 = typecast %b4:i0:i8 to i32 - %b4:i3:i32 = typecast %b4:i1:i8 to i32 - %b4:i4:i32 = add %b4:i2:i32 %b4:i3:i32 - %b4:i5:u64 = typecast 4:i32 to u64 - %b4:i6:u1 = cmp eq 4:u64 %b4:i5:u64 - %b4:i7:unit = store %b4:i6:u1 %l3:u1* + %b4:i0:u64 = typecast 4:i32 to u64 + %b4:i1:u1 = cmp eq 4:u64 %b4:i0:u64 + %b4:i2:unit = store %b4:i1:u1 %l3:u1* j b6() block b5: diff --git a/examples/ir0/sizeof3.ir b/examples/ir0/sizeof3.ir new file mode 100644 index 0000000..904304b --- /dev/null +++ b/examples/ir0/sizeof3.ir @@ -0,0 +1,18 @@ + +fun i32 @main () { +init: + bid: b0 + allocations: + %l0:i32:x + %l1:i32:y + +block b0: + %b0:i0:unit = store 3:i32 %l0:i32* + %b0:i1:i32 = typecast 4:u64 to i32 + %b0:i2:unit = store %b0:i1:i32 %l1:i32* + %b0:i3:i32 = load %l0:i32* + ret %b0:i3:i32 + +block b1: + ret 0:i32 +} diff --git a/examples/ir1/sizeof2.ir b/examples/ir1/sizeof2.ir index a529366..1a47f79 100644 --- a/examples/ir1/sizeof2.ir +++ b/examples/ir1/sizeof2.ir @@ -34,14 +34,9 @@ block b3: ret %b3:i1:i32 block b4: - %b4:i0:i8 = load %l0:i8* - %b4:i1:i8 = load %l1:i8* - %b4:i2:i32 = typecast %b4:i0:i8 to i32 - %b4:i3:i32 = typecast %b4:i1:i8 to i32 - %b4:i4:i32 = add %b4:i2:i32 %b4:i3:i32 - %b4:i5:u64 = typecast 4:i32 to u64 - %b4:i6:u1 = cmp eq 4:u64 %b4:i5:u64 - %b4:i7:unit = store %b4:i6:u1 %l3:u1* + %b4:i0:u64 = typecast 4:i32 to u64 + %b4:i1:u1 = cmp eq 4:u64 %b4:i0:u64 + %b4:i2:unit = store %b4:i1:u1 %l3:u1* j b6() block b5: diff --git a/examples/ir1/sizeof3.ir b/examples/ir1/sizeof3.ir new file mode 100644 index 0000000..3fd6477 --- /dev/null +++ b/examples/ir1/sizeof3.ir @@ -0,0 +1,15 @@ + +fun i32 @main () { +init: + bid: b0 + allocations: + %l0:i32:x + %l1:i32:y + +block b0: + %b0:i0:unit = store 3:i32 %l0:i32* + %b0:i1:i32 = typecast 4:u64 to i32 + %b0:i2:unit = store %b0:i1:i32 %l1:i32* + %b0:i3:i32 = load %l0:i32* + ret %b0:i3:i32 +} diff --git a/examples/ir2/sizeof2.ir b/examples/ir2/sizeof2.ir index 6157019..ba6cf06 100644 --- a/examples/ir2/sizeof2.ir +++ b/examples/ir2/sizeof2.ir @@ -35,15 +35,10 @@ block b3: ret %b3:i1:i32 block b4: - %b4:i0:unit = nop - %b4:i1:unit = nop - %b4:i2:i32 = typecast %b0:i0:i8 to i32 - %b4:i3:i32 = typecast %b0:i2:i8 to i32 - %b4:i4:i32 = add %b4:i2:i32 %b4:i3:i32 - %b4:i5:u64 = typecast 4:i32 to u64 - %b4:i6:u1 = cmp eq 4:u64 %b4:i5:u64 - %b4:i7:unit = nop - j b6(%b4:i6:u1) + %b4:i0:u64 = typecast 4:i32 to u64 + %b4:i1:u1 = cmp eq 4:u64 %b4:i0:u64 + %b4:i2:unit = nop + j b6(%b4:i1:u1) block b5: %b5:i0:unit = nop diff --git a/examples/ir2/sizeof3.ir b/examples/ir2/sizeof3.ir new file mode 100644 index 0000000..c1a4f6a --- /dev/null +++ b/examples/ir2/sizeof3.ir @@ -0,0 +1,15 @@ + +fun i32 @main () { +init: + bid: b0 + allocations: + %l0:i32:x + %l1:i32:y + +block b0: + %b0:i0:unit = nop + %b0:i1:i32 = typecast 4:u64 to i32 + %b0:i2:unit = nop + %b0:i3:unit = nop + ret 3:i32 +} diff --git a/examples/ir3/sizeof3.ir b/examples/ir3/sizeof3.ir new file mode 100644 index 0000000..6b0fb62 --- /dev/null +++ b/examples/ir3/sizeof3.ir @@ -0,0 +1,10 @@ + +fun i32 @main () { +init: + bid: b0 + allocations: + + +block b0: + ret 3:i32 +} diff --git a/examples/ir4/sizeof3.ir b/examples/ir4/sizeof3.ir new file mode 100644 index 0000000..6b0fb62 --- /dev/null +++ b/examples/ir4/sizeof3.ir @@ -0,0 +1,10 @@ + +fun i32 @main () { +init: + bid: b0 + allocations: + + +block b0: + ret 3:i32 +}