From: lkcl Date: Thu, 10 Oct 2019 08:14:01 +0000 (+0100) Subject: (no commit message) X-Git-Tag: convert-csv-opcode-to-binary~3858 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=9cf058c98c6e0846d1e7be60e956712a8d09da6e;p=libreriscv.git --- diff --git a/simple_v_extension/vector_ops.mdwn b/simple_v_extension/vector_ops.mdwn index 394e5b24d..4873de0e1 100644 --- a/simple_v_extension/vector_ops.mdwn +++ b/simple_v_extension/vector_ops.mdwn @@ -14,10 +14,6 @@ Examples which can require SUBVL include cross product and may in future involve ## CORDIC -* SUBVL=2, vd, vs; SUBVL ignored on beta. -* VL nonzero ok. beta as scalar ok (applies across all vectors) -* non vector args vd, vs, or SUBVL!=2 reserved. - 6 opcode options (fmt3): * CORDIC.lin.rot vd, vs, beta @@ -27,6 +23,12 @@ Examples which can require SUBVL include cross product and may in future involve * CORDIC.cir.vec vd, vs, beta * CORDIC.hyp.vec vd, vs, beta +SUBVL must be set to 2 and applies to vd and vs. SUBVL is *ignored* on beta. vd and vs must be marked as vectors. + +VL may be applied. beta as a scalar is ok (applies across all vectors vd and vs). Predication is also ok (single predication) sourced from vd. Use of swizzle is also ok. + +Non vector args vd, vs, or SUBVL != 2 are reserved encodings. + CORDIC is an extremely general-purpose algorithm useful for a huge number of diverse purposes. In its full form it does however require quite a few parameters, one of which is a vector, making it awkward to include in