# SV Load and Store
+This section describes how Standard Load/Store Defined Words are exploited as
+Element-level Load/Stores and augmented to create direct equivalents of
+Vector Load/Store instructions.
+
<!-- hide -->
Links:
* <https://llvm.org/devmtg/2016-11/Slides/Emerson-ScalableVectorizationinLLVMIR.pdf>
* <https://github.com/riscv/riscv-v-spec/blob/master/v-spec.adoc#vector-loads-and-stores>
* [[ldst/discussion]]
-<!-- show -->
## Rationale
behaviour of the underlying Base (Scalar) v3.0B operations in any way.
(The sole apparent exception is Post-Increment Mode on LD/ST-update
instructions)
+<!-- show -->
## Modes overview
* **element strided** - sequential but regularly offset, with gaps
* **vector indexed** - vector of base addresses and vector of offsets
* **Speculative Fault-first** - where it makes sense to do so
+* **Data-Dependent Fail-First** - Conditional truncation of Vector Length
* **Structure Packing** - covered in SV by [[sv/remap]] and Pack/Unpack Mode.
*Despite being constructed from Scalar LD/ST none of these Modes exist
| 0 | 1 | 2 | 3 4 | description |
|---|---| --- |---------|--------------------------- |
|els| 0 | PI | zz LF | post-increment and Fault-First |
-|VLi| 1 | inv | CR-bit | ffirst CR sel |
+|VLi| 1 | inv | CR-bit | Data-Dependent ffirst CR sel |
The `els` bit is only relevant when `RA.isvec` is clear: this indicates
whether stride is unit or element:
| 0 | 1 | 2 | 3 4 | description |
|---|---| --- |---------|--------------------------- |
-|els| 0 | PI | zz SEA | simple mode |
-|VLi| 1 | inv | CR-bit | ffirst CR sel |
+|els| 0 | PI | zz SEA | post-increment and Fault-First |
+|VLi| 1 | inv | CR-bit | Data-Dependent ffirst CR sel |
Vector Indexed Strided Mode is qualified as follows: