aboutsummaryrefslogtreecommitdiff
path: root/spec
diff options
context:
space:
mode:
authorKevin Laeufer2019-06-03 19:14:13 +0000
committermergify[bot]2019-06-03 19:14:13 +0000
commite747c8c41832e8a3c7c786e0a29f5adf13adcfff (patch)
tree058da7d9a5bda39f9355e5d3fb5cf92f46b6b54a /spec
parenteb64bf518df7a91094d99b7dfc7dfa8d199f04ae (diff)
spec: mixed-input arguments for prim ops are no longer allowed (#1085)
This updates the spec to refelect the changes made in #587. It also fixes issue #968.
Diffstat (limited to 'spec')
-rw-r--r--spec/spec.tex20
1 files changed, 2 insertions, 18 deletions
diff --git a/spec/spec.tex b/spec/spec.tex
index 0a8e3a50..706df2f0 100644
--- a/spec/spec.tex
+++ b/spec/spec.tex
@@ -1178,8 +1178,6 @@ Notationally, the width of an argument \vv{e} is represented as \vv{w}\ts{e}.
\begin{tabular}{ |c|c|c|c|c|c| }
\opheader
add & (e1,e2) & () & (UInt,UInt) & UInt & max(w\ts{e1},w\ts{e2})+1\\
- &&& (UInt,SInt) & SInt & max(w\ts{e1},w\ts{e2}-1)+2\\
- &&& (SInt,UInt) & SInt & max(w\ts{e1}-1,w\ts{e2})+2\\
&&& (SInt,SInt) & SInt & max(w\ts{e1},w\ts{e2})+1\\
\hline
\end{tabular}
@@ -1195,8 +1193,6 @@ The add operation result is the sum of \vv{e1} and \vv{e2} without loss of preci
\begin{tabular}{ |c|c|c|c|c|c| }
\opheader
sub & (e1,e2) & () & (UInt,UInt) & SInt & max(w\ts{e1},w\ts{e2})+1\\
- &&& (UInt,SInt) & SInt & max(w\ts{e1}+2,w\ts{e2}+1)\\
- &&& (SInt,UInt) & SInt & max(w\ts{e1}+1,w\ts{e2}+2)\\
&&& (SInt,SInt) & SInt & max(w\ts{e1},w\ts{e2})+1\\
\hline
\end{tabular}
@@ -1212,8 +1208,6 @@ The subtract operation result is \vv{e2} subtracted from \vv{e1}, without loss o
\begin{tabular}{ |c|c|c|c|c|c| }
\opheader
mul & (e1,e2) & () & (UInt,UInt) & UInt & w\ts{e1}+w\ts{e2}\\
- &&& (UInt,SInt) & SInt & w\ts{e1}+w\ts{e2}\\
- &&& (SInt,UInt) & SInt & w\ts{e1}+w\ts{e2}\\
&&& (SInt,SInt) & SInt & w\ts{e1}+w\ts{e2}\\
\hline
\end{tabular}
@@ -1229,8 +1223,6 @@ The multiply operation result is the product of \vv{e1} and \vv{e2}, without los
\begin{tabular}{ |c|c|c|c|c|c| }
\opheader
div & (num,den) & () & (UInt,UInt) & UInt & w\ts{num}\\
- &&& (UInt,SInt) & SInt & w\ts{num}+1\\
- &&& (SInt,UInt) & SInt & w\ts{num}\\
&&& (SInt,SInt) & SInt & w\ts{num}+1\\
\hline
\end{tabular}
@@ -1246,8 +1238,6 @@ The divide operation divides \vv{num} by \vv{den}, truncating the fractional por
\begin{tabular}{ |c|c|c|c|c|c| }
\opheader
rem & (num,den) & () & (UInt,UInt) & UInt & min(w\ts{num},w\ts{den})\\
- &&& (UInt,SInt) & UInt & min(w\ts{num},w\ts{den})\\
- &&& (SInt,UInt) & SInt & min(w\ts{num},w\ts{den}+1)\\
&&& (SInt,SInt) & SInt & min(w\ts{num},w\ts{den})\\
\hline
\end{tabular}
@@ -1266,9 +1256,7 @@ num = add(mul(den,div(num,den)),rem(num,den))}
\begin{tabular}{ |c|c|c|c|c|c| }
\opheader
lt,leq,gt, & (e1,e2) & () & (UInt,UInt) & UInt & 1\\
-geq,eq,neq &&& (UInt,SInt) & UInt & 1\\
- &&& (SInt,UInt) & UInt & 1\\
- &&& (SInt,SInt) & UInt & 1\\
+geq,eq,neq &&& (SInt,SInt) & UInt & 1\\
\hline
\end{tabular}
}}
@@ -1464,9 +1452,7 @@ The bitwise complement operation performs a logical not on each bit in \vv{e}.
\begin{tabular}{ |c|c|c|c|c|c| }
\opheader
and,or,xor & (e1, e2) & () & (UInt,UInt) & UInt & max(w\ts{e1},w\ts{e2})\\
- &&& (UInt,SInt) & UInt & max(w\ts{e1},w\ts{e2})\\
- &&& (SInt,UInt) & UInt & max(w\ts{e1},w\ts{e2})\\
- &&& (SInt,SInt) & UInt & max(w\ts{e1},w\ts{e2})\\
+ &&& (SInt,SInt) & UInt & max(w\ts{e1},w\ts{e2})\\
\hline
\end{tabular}
}}
@@ -1498,8 +1484,6 @@ The bitwise reduction operations correspond to a bitwise and, or, and exclusive
\begin{tabular}{ |c|c|c|c|c|c| }
\opheader
cat & (e1,e2) & () & (UInt, UInt) & UInt & w\ts{e1}+w\ts{e2}\\
- &&& (UInt, SInt) & UInt & w\ts{e1}+w\ts{e2}\\
- &&& (SInt, UInt) & UInt & w\ts{e1}+w\ts{e2}\\
&&& (SInt, SInt) & UInt & w\ts{e1}+w\ts{e2}\\
\hline
\end{tabular}