summaryrefslogtreecommitdiff
path: root/test/typecheck/pass/Replicate.sail
blob: 291b7e168a461dd65305a35afcc04fdcb625f3a7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
default Order dec

$include <smt.sail>
$include <prelude.sail>

overload operator / = {ediv_int}
overload operator % = {emod_int}

val Replicate : forall ('M : Int) ('N : Int), 'M >= 1.
  (implicit('N), bits('M)) -> bits('N) effect {escape}

function Replicate (N, x) = {
    assert('N % 'M == 0);
    replicate_bits(x, 'N / 'M)
}