From 271e1bf5ed56847c1ce7d50bdb7f1db9ccc5ea55 Mon Sep 17 00:00:00 2001 From: azidar Date: Mon, 13 Jul 2015 16:22:43 -0700 Subject: Added tests for clocks. Added remove scope and special chars passes. Added tests. Made more tests pass --- test/passes/infer-types/gcd.fir | 27 +++++++++++-------- test/passes/infer-types/primops.fir | 52 ++++++++++++++++++------------------- 2 files changed, 42 insertions(+), 37 deletions(-) (limited to 'test/passes/infer-types') diff --git a/test/passes/infer-types/gcd.fir b/test/passes/infer-types/gcd.fir index 6bceda5c..735a69c9 100644 --- a/test/passes/infer-types/gcd.fir +++ b/test/passes/infer-types/gcd.fir @@ -6,30 +6,31 @@ circuit top : input x : UInt input y : UInt output z : UInt - z := sub-wrap(x, y) - ;CHECK: z@ := sub-wrap(x@, y@)@ + z := subw(x, y) + ;CHECK: z@ := subw(x@, y@)@ module gcd : input a : UInt<16> input b : UInt<16> input e : UInt<1> + input clk : Clock + input reset : UInt<1> output z : UInt<16> output v : UInt<1> - reg x : UInt - reg y : UInt + reg x : UInt,clk,reset + reg y : UInt,clk,reset ; CHECK: reg x : UInt - on-reset x := UInt(0) - on-reset y := UInt(42) + onreset x := UInt(0) + onreset y := UInt(42) when gt(x, y) : ;CHECK: when gt(x@, y@)@ : inst s of subtracter - ;CHECK: inst s of subtracter@, flip y : UInt@, z : UInt@, flip reset : UInt<1>@}> + ;CHECK: inst s of subtracter@, flip y : UInt@, z : UInt@}> s.x := x s.y := y x := s.z - ;CHECK: s@, flip y : UInt@, z : UInt@, flip reset : UInt<1>@}>.reset@ := reset@ - ;CHECK: s@, flip y : UInt@, z : UInt@, flip reset : UInt<1>@}>.x@ := x@ - ;CHECK: s@, flip y : UInt@, z : UInt@, flip reset : UInt<1>@}>.y@ := y@ - ;CHECK: x@ := s@, flip y : UInt@, z : UInt@, flip reset : UInt<1>@}>.z@ + ;CHECK: s@, flip y : UInt@, z : UInt@}>.x@ := x@ + ;CHECK: s@, flip y : UInt@, z : UInt@}>.y@ := y@ + ;CHECK: x@ := s@, flip y : UInt@, z : UInt@}>.z@ else : inst s2 of subtracter s2.x := x @@ -44,10 +45,14 @@ circuit top : module top : input a : UInt<16> input b : UInt<16> + input clk : Clock + input reset : UInt<1> output z : UInt inst i of gcd i.a := a i.b := b + i.clk := clk + i.reset := reset i.e := UInt(1) z := i.z diff --git a/test/passes/infer-types/primops.fir b/test/passes/infer-types/primops.fir index 05e9adf8..61656e9c 100644 --- a/test/passes/infer-types/primops.fir +++ b/test/passes/infer-types/primops.fir @@ -51,17 +51,17 @@ circuit top : node yrem = rem(c, b) ;CHECK: node yrem = rem(c@, b@)@ node zrem = rem(c, d) ;CHECK: node zrem = rem(c@, d@)@ - node vadd-wrap = add-wrap(a, c) ;CHECK: node vadd-wrap = add-wrap(a@, c@)@ - node wadd-wrap = add-wrap(a, b) ;CHECK: node wadd-wrap = add-wrap(a@, b@)@ - node xadd-wrap = add-wrap(a, d) ;CHECK: node xadd-wrap = add-wrap(a@, d@)@ - node yadd-wrap = add-wrap(c, b) ;CHECK: node yadd-wrap = add-wrap(c@, b@)@ - node zadd-wrap = add-wrap(c, d) ;CHECK: node zadd-wrap = add-wrap(c@, d@)@ - - node vsub-wrap = sub-wrap(a, c) ;CHECK: node vsub-wrap = sub-wrap(a@, c@)@ - node wsub-wrap = sub-wrap(a, b) ;CHECK: node wsub-wrap = sub-wrap(a@, b@)@ - node xsub-wrap = sub-wrap(a, d) ;CHECK: node xsub-wrap = sub-wrap(a@, d@)@ - node ysub-wrap = sub-wrap(c, b) ;CHECK: node ysub-wrap = sub-wrap(c@, b@)@ - node zsub-wrap = sub-wrap(c, d) ;CHECK: node zsub-wrap = sub-wrap(c@, d@)@ + node vaddw = addw(a, c) ;CHECK: node vaddw = addw(a@, c@)@ + node waddw = addw(a, b) ;CHECK: node waddw = addw(a@, b@)@ + node xaddw = addw(a, d) ;CHECK: node xaddw = addw(a@, d@)@ + node yaddw = addw(c, b) ;CHECK: node yaddw = addw(c@, b@)@ + node zaddw = addw(c, d) ;CHECK: node zaddw = addw(c@, d@)@ + + node vsubw = subw(a, c) ;CHECK: node vsubw = subw(a@, c@)@ + node wsubw = subw(a, b) ;CHECK: node wsubw = subw(a@, b@)@ + node xsubw = subw(a, d) ;CHECK: node xsubw = subw(a@, d@)@ + node ysubw = subw(c, b) ;CHECK: node ysubw = subw(c@, b@)@ + node zsubw = subw(c, d) ;CHECK: node zsubw = subw(c@, d@)@ node vlt = lt(a, c) ;CHECK: node vlt = lt(a@, c@)@ node wlt = lt(a, b) ;CHECK: node wlt = lt(a@, b@)@ @@ -103,13 +103,13 @@ circuit top : node wpad = pad(a, 10) ;CHECK: node wpad = pad(a@, 10)@ node zpad = pad(c, 10) ;CHECK: node zpad = pad(c@, 10)@ - node vas-UInt = as-UInt(d) ;CHECK: node vas-UInt = as-UInt(d@)@ - node was-UInt = as-UInt(a) ;CHECK: node was-UInt = as-UInt(a@)@ - node zas-UInt = as-UInt(c) ;CHECK: node zas-UInt = as-UInt(c@)@ + node vasUInt = asUInt(d) ;CHECK: node vasUInt = asUInt(d@)@ + node wasUInt = asUInt(a) ;CHECK: node wasUInt = asUInt(a@)@ + node zasUInt = asUInt(c) ;CHECK: node zasUInt = asUInt(c@)@ - node vas-SInt = as-SInt(a) ;CHECK: node vas-SInt = as-SInt(a@)@ - node was-SInt = as-SInt(a) ;CHECK: node was-SInt = as-SInt(a@)@ - node zas-SInt = as-SInt(c) ;CHECK: node zas-SInt = as-SInt(c@)@ + node vasSInt = asSInt(a) ;CHECK: node vasSInt = asSInt(a@)@ + node wasSInt = asSInt(a) ;CHECK: node wasSInt = asSInt(a@)@ + node zasSInt = asSInt(c) ;CHECK: node zasSInt = asSInt(c@)@ node vshl = shl(a, 10) ;CHECK: node vshl = shl(a@, 10)@ node wshl = shl(a, 10) ;CHECK: node wshl = shl(a@, 10)@ @@ -127,23 +127,23 @@ circuit top : node wshr = shr(a, 10) ;CHECK: node wshr = shr(a@, 10)@ node zshr = shr(c, 10) ;CHECK: node zshr = shr(c@, 10)@ - node vconvert = convert(a) ;CHECK: node vconvert = convert(a@)@ - node wconvert = convert(a) ;CHECK: node wconvert = convert(a@)@ - node zconvert = convert(c) ;CHECK: node zconvert = convert(c@)@ + node vcvt = cvt(a) ;CHECK: node vcvt = cvt(a@)@ + node wcvt = cvt(a) ;CHECK: node wcvt = cvt(a@)@ + node zcvt = cvt(c) ;CHECK: node zcvt = cvt(c@)@ node vneg = neg(a) ;CHECK: node vneg = neg(a@)@ node wneg = neg(a) ;CHECK: node wneg = neg(a@)@ node zneg = neg(c) ;CHECK: node zneg = neg(c@)@ - node uand = bit-and(a, b) ;CHECK: node uand = bit-and(a@, b@)@ - node vor = bit-or(a, b) ;CHECK: node vor = bit-or(a@, b@)@ - node wxor = bit-xor(a, b) ;CHECK: node wxor = bit-xor(a@, b@)@ + node uand = and(a, b) ;CHECK: node uand = and(a@, b@)@ + node vor = or(a, b) ;CHECK: node vor = or(a@, b@)@ + node wxor = xor(a, b) ;CHECK: node wxor = xor(a@, b@)@ node xcat = cat(a, b) ;CHECK: node xcat = cat(a@, b@)@ node ybit = bit(a, 0) ;CHECK: node ybit = bit(a@, 0)@ node zbits = bits(a, 2, 0) ;CHECK: node zbits = bits(a@, 2, 0)@ - node uand-reduce = bit-and-reduce(a, b, a) ;CHECK: node uand-reduce = bit-and-reduce(a@, b@, a@)@ - node uor-reduce = bit-or-reduce(a, b, a) ;CHECK: node uor-reduce = bit-or-reduce(a@, b@, a@)@ - node uxor-reduce = bit-xor-reduce(a, b, a) ;CHECK: node uxor-reduce = bit-xor-reduce(a@, b@, a@)@ + node uandr = andr(a, b, a) ;CHECK: node uandr = andr(a@, b@, a@)@ + node uorr = orr(a, b, a) ;CHECK: node uorr = orr(a@, b@, a@)@ + node uxorr = xorr(a, b, a) ;CHECK: node uxorr = xorr(a@, b@, a@)@ ;CHECK: Finished Infer Types -- cgit v1.2.3