* <https://bugs.libre-soc.org/show_bug.cgi?id=687>
* <https://bugs.libre-soc.org/show_bug.cgi?id=936> write on failfirst
+* <https://bugs.libre-soc.org/show_bug.cgi?id=1183> enable mapreduce with failfirst
* [[svp64]]
* [[sv/branches]]
* [[sv/cr_int_predication]]
interesting conceptual challenges for SVP64, which was designed
primarily for vectors of arithmetic and logical operations. However
if predicates may be bits of CR Fields it makes sense to extend
-Simple-V to cover CR Operations, especially given that Vectorised Rc=1
-may be processed by Vectorised CR Operations that usefully in turn
+Simple-V to cover CR Operations, especially given that Vectorized Rc=1
+may be processed by Vectorized CR Operations that usefully in turn
may become Predicate Masks to yet more Vector operations, like so:
```
operations are firmly out of scope for this section, being covered fully
by [[sv/normal]].
-* Examples of Vectoriseable Defined Words to which this section does
+* Examples of Vectorizeable Defined Word-instructions to which this section does
apply is
- `mfcr` and `cmpi` (3 bit operands) and
- `crnor` and `crand` (5 bit operands).
a CR bit and whether it is set (inv=0) or unset (inv=1)
* **RG** Reverse-Gear: inverts the Vector Loop order (VL-1 downto 0) rather
than the normal 0 upto VL-1
-* **SVM** sets "subvector" reduce mode
* **VLi** VL inclusive: in fail-first mode, the truncation of
VL *includes* the current element at the failure point rather
than excludes it from the count.
decision. However with CR-based operations that CR Field result to be
tested is provided *by the operation itself*.
-Data-dependent SVP64 Vectorised Operations involving the creation
+Data-dependent SVP64 Vectorized Operations involving the creation
or modification of a CR can require an extra two bits, which are not
available in the compact space of the SVP64 RM `MODE` Field. With the
concept of element width overrides being meaningless for CR Fields it
the totals (the behaviours) are consistent whether
VLi=0 or VLi=1.
-*Programmer's Note: if necessary VL may be obtained by using the alias
-`getvl`, followed by incrementing or decrementing the GPR with the
-copy of VL, and using `setvl` with the same GPR, to adjust VL.
-Programmers should be aware that MAXVL will always limit
-VL*.
+*Programmer's Note: Data-dependent fail-first stores an updated
+VL in the SVSTATE SPR, not in any GPR. If needed
+VL may be obtained by using the alias `getvl`.
## Reduction and Iteration
is a much easier proposition to consider.
The prohibitions utilise the CR Field numbers implicitly to
-split out Vectorised CR operations to be considered completely
+split out Vectorized CR operations to be considered completely
separare and distinct from Scalar CR operations *even though
they both use the same binary encoding*. This does in turn
mean that at the Decode Phase it becomes necessary to examine
not only the operation (`sv.crand`, `sv.cmp`) but also
the CR Field numbers as well as whether, in the EXTRA2/3 Mode
-bits, the operands are Vectorised.
+bits, the operands are Vectorized.
A future version of Power ISA, where SVP64Single is proposed,
would in fact introduce "Conditional Execution", including