aboutsummaryrefslogtreecommitdiff
path: root/test/chisel3/SIntOps.fir
blob: f79d0fca4fd599d602d4426c315de8d0bb3a252f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
; RUN: firrtl -i %s -o %s.flo -x X -p c | tee %s.out | FileCheck %s
; CHECK: Done!

circuit SIntOps : 
  module SIntOps : 
    input a : SInt<16>
    input b : SInt<16>
    output addout : SInt<16>
    output subout : SInt<16>
    output timesout : SInt<16>
    output divout : SInt<16>
    output modout : SInt<16>
    output lshiftout : SInt<16>
    output rshiftout : SInt<16>
    output lessout : UInt<1>
    output greatout : UInt<1>
    output eqout : UInt<1>
    output noteqout : UInt<1>
    output lesseqout : UInt<1>
    output greateqout : UInt<1>
    output negout : SInt<16>
    
    wire ub : UInt
    ub := b
    node T_44 = add-wrap(Pad(a,?), Pad(b,?))
    addout := Pad(T_44,?)
    node T_45 = sub-wrap(Pad(a,?), Pad(b,?))
    subout := Pad(T_45,?)
    node T_46 = mul(Pad(a,?), Pad(b,?))
    node T_47 = bits(T_46, 15, 0)
    timesout := Pad(T_47,?)
    node T_48 = eq(Pad(b,?), Pad(SInt<1>(0),?))
    node T_49 = mux(Pad(T_48,?), Pad(SInt<2>(1),?), Pad(b,?))
    node T_50 = div(Pad(a,?), Pad(T_49,?))
    divout := Pad(T_50,?)
    modout := Pad(UInt<1>(0),?)
    node T_51 = bits(ub, 3, 0)
    node T_52 = dshl(a, T_51)
    node T_53 = bits(T_52, 15, 0)
    wire T_54 : SInt
    T_54 := T_53
    lshiftout := Pad(T_54,?)
    node T_55 = dshr(a, ub)
    wire T_56 : SInt
    T_56 := T_55
    rshiftout := Pad(T_56,?)
    node T_57 = lt(Pad(a,?), Pad(b,?))
    lessout := Pad(T_57,?)
    node T_58 = gt(Pad(a,?), Pad(b,?))
    greatout := Pad(T_58,?)
    node T_59 = eq(Pad(a,?), Pad(b,?))
    eqout := Pad(T_59,?)
    node T_60 = neq(Pad(a,?), Pad(b,?))
    noteqout := Pad(T_60,?)
    node T_61 = leq(Pad(a,?), Pad(b,?))
    lesseqout := Pad(T_61,?)
    node T_62 = geq(Pad(a,?), Pad(b,?))
    greateqout := Pad(T_62,?)
    node T_63 = sub-wrap(Pad(SInt<1>(0),?), Pad(a,?))
    negout := Pad(T_63,?)