full review needed, answering question:
- if sv.op RT.scalar RA.scalar RB.scalar is set to "VL=1" is anything lost?
+ if sv.op RT.scalar RA.scalar RB.scalar is changed to temporarily override VL to be 1, is anything lost?
four aspects:
**Normal Mode:**
-* simple mode is straight vectorisation.
+* simple mode is straight vectorization.
* reduce mode
* ffirst or data-dependent fail-on-first:
* sat mode or saturation:
[[sv/ldst]]
-First critical observation, RA.isvec is utilised to detect element-stride.
+First critical observation, RA.isvec is utilized to detect element-stride.
```
if RA.isvec:
thus it is actually legitimate to have scalar src *and* dest especially
with predicate masks. the trick noted in (4) below of setting `RA.isvec`
-would therefore activate the *Vector Indexed* mode, with associated predication-based offsets (and REMAP) which is **NOT** the same as
-`VSPLAT` mode.
+would therefore activate the *Vector Indexed* mode, with associated
+predication-based offsets (and REMAP) (not to be confused with VSPLAT mode).
elif RA.isvec:
- # quirky Vector indexed mode but with an immediate
- srcbase = ireg[RA+i]
- offs = immed;
+ # quirky Vector indexed mode but with an immediate
+ srcbase = ireg[RA+i]
+ offs = immed;
else
- # standard scalar mode (but predicated)
- # no stride multiplier means VSPLAT mode
- srcbase = ireg[RA]
- offs = immed
+ # standard scalar mode (but predicated)
+ # no stride multiplier means VSPLAT mode (FIXME(lkcl): unclear --
+ # VSPLAT requires RT.isvec=1 and all sources to be scalar)
+ srcbase = ireg[RA]
+ offs = immed
-Question:
+* Question:
is RA.isvec=0 RT.isvec=1 a substitute?
-Answer:
+ Answer:
- no because this is VSPLAT mode
+ no because RA.isvec=0 RT.isvec=1 is VSPLAT mode
-Question:
+* Question:
- are there any other equivalent modes?
+ are there any other equivalent modes?
-Answer:
+ Answer:
no, because immediate=0 selects Indexed mode
-Question:
+* Question:
can the VSPLAT mode be actually used in proposed scalar-mode?
-Answer:
+ Answer:
- possibly.
+ No, scalar-mode requires RA.isvec=0 RT.isvec=0, but VSPLAT is RA.isvec=0 RT.isvec=1.
VL>1 at the moment, with a scalar source and scalar dest, will
not undergo any changes to the EA compared to if VL=1.