diff options
| author | Andrew Kelley <andrew@ziglang.org> | 2020-04-29 19:38:45 -0400 |
|---|---|---|
| committer | Andrew Kelley <andrew@ziglang.org> | 2020-05-01 06:47:20 -0400 |
| commit | 1d202008d8008681988effdf25be2c6a753cf067 (patch) | |
| tree | 74c0432a2a1fa077f507a31ea25d089636a10a2a /test | |
| parent | 751903ba8fba467411942317c8da0e6bc22a0ff6 (diff) | |
| download | zig-1d202008d8008681988effdf25be2c6a753cf067.tar.gz zig-1d202008d8008681988effdf25be2c6a753cf067.zip | |
add ZIR transform test case
Diffstat (limited to 'test')
| -rw-r--r-- | test/stage2/zir.zig | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/test/stage2/zir.zig b/test/stage2/zir.zig index d2ea3c01fc..9a65e9ab96 100644 --- a/test/stage2/zir.zig +++ b/test/stage2/zir.zig @@ -1,6 +1,51 @@ const TestContext = @import("../../src-self-hosted/test.zig").TestContext; pub fn addCases(ctx: *TestContext) void { + ctx.addZIRTransform("elemptr, add, cmp, condbr, return, breakpoint", + \\@void = primitive(void) + \\@usize = primitive(usize) + \\@fnty = fntype([], @void, cc=C) + \\@0 = int(0) + \\@1 = int(1) + \\@2 = int(2) + \\@3 = int(3) + \\ + \\@entry = fn(@fnty, { + \\ %a = str("\x32\x08\x01\x0a") + \\ %eptr0 = elemptr(%a, @0) + \\ %eptr1 = elemptr(%a, @1) + \\ %eptr2 = elemptr(%a, @2) + \\ %eptr3 = elemptr(%a, @3) + \\ %v0 = deref(%eptr0) + \\ %v1 = deref(%eptr1) + \\ %v2 = deref(%eptr2) + \\ %v3 = deref(%eptr3) + \\ %x0 = add(%v0, %v1) + \\ %x1 = add(%v2, %v3) + \\ %result = add(%x0, %x1) + \\ + \\ %expected = int(69) + \\ %ok = cmp(%result, eq, %expected) + \\ %10 = condbr(%ok, { + \\ %11 = return() + \\ }, { + \\ %12 = breakpoint() + \\ }) + \\}) + \\ + \\@9 = str("entry") + \\@10 = export(@9, @entry) + , + \\@0 = primitive(void) + \\@1 = fntype([], @0, cc=C) + \\@2 = fn(@1, { + \\ %0 = return() + \\}) + \\@3 = str("entry") + \\@4 = export(@3, @2) + \\ + ); + if (@import("std").Target.current.os.tag != .linux or @import("std").Target.current.cpu.arch != .x86_64) { |
