# RFC ls009 SVP64 REMAP instructions
**URLs**:
*
*
*
*
**Severity**: Major
**Status**: New
**Date**: 24 Mar 2023
**Target**: v3.2B
**Source**: v3.0B
**Books and Section affected**:
```
Book I, new Zero-Overhead-Loop Chapter.
Appendix E Power ISA sorted by opcode
Appendix F Power ISA sorted by version
Appendix G Power ISA sorted by Compliancy Subset
Appendix H Power ISA sorted by mnemonic
```
**Summary**
```
svremap - Re-Mapping of Register Element Offsets
svindex - General-purpose setting of SHAPEs to be re-mapped
svshape - Hardware-level setting of SHAPEs for element re-mapping
svshape2 - Hardware-level setting of SHAPEs for element re-mapping (v2)
```
**Submitter**: Luke Leighton (Libre-SOC)
**Requester**: Libre-SOC
**Impact on processor**:
```
Addition of four new "Zero-Overhead-Loop-Control" DSP-style Vector-style
Management Instructions which provide advanced features such as Matrix
FFT DCT Hardware-Assist Schedules and general-purpose Index reordering.
```
**Impact on software**:
```
Requires support for new instructions in assembler, debuggers,
and related tools.
```
**Keywords**:
```
Cray Supercomputing, Vectorisation, Zero-Overhead-Loop-Control (ZOLC),
Scalable Vectors, Multi-Issue Out-of-Order, Sequential Programming Model,
Digital Signal Processing (DSP)
```
**Motivation**
These REMAP Management instructions provide state-of-the-art advanced capabilities
to dramatically decrease instruction count and power reduction whilst retaining
unprecedented general-purpose capability and a standard Sequential Execution Model.
**Notes and Observations**:
1. TODO
**Changes**
Add the following entries to:
* the Appendices of Book I
* Instructions of Book I as a new Section
* TODO-Form of Book I Section 1.6.1.6 and 1.6.2
----------------
\newpage{}
# svstep: Vertical-First Stepping and status reporting
SVL-Form
* svstep RT,SVi,vf (Rc=0)
* svstep. RT,SVi,vf (Rc=1)
| 0-5|6-10|11.15|16..22| 23-25 | 26-30 |31| Form |
|----|----|-----|------|----------|-------|--|--------- |
|PO | RT | / | SVi | / / vf | XO |Rc| SVL-Form |
Pseudo-code:
```
if SVi[3:4] = 0b11 then
# store pack and unpack in SVSTATE
SVSTATE[53] <- SVi[5]
SVSTATE[54] <- SVi[6]
RT <- [0]*62 || SVSTATE[53:54]
else
# Vertical-First explicit stepping.
step <- SVSTATE_NEXT(SVi, vf)
RT <- [0]*57 || step
```
Special Registers Altered:
CR0 (if Rc=1)
**Description**
-------------
\newpage{}
-------------
\newpage{}
# SVL-Form
Add the following to Book I, 1.6.1, SVL-Form
```
|0 |6 |11 |16 |23 |24 |25 |26 |31 |
| PO | RT | RA | SVi |ms |vs |vf | XO |Rc |
| PO | RT | / | SVi |/ |/ |vf | XO |Rc |
```
* Add `SVL` to `RA (11:15)` Field in Book I, 1.6.2
* Add `SVL` to `RT (6:10)` Field in Book I, 1.6.2
* Add `SVL` to `Rc (31)` Field in Book I, 1.6.2
* Add `SVL` to `XO (26:31)` Field in Book I, 1.6.2
Add the following to Book I, 1.6.2
```
ms (23)
Field used in Simple-V to specify whether MVL (maxvl in the SVSTATE SPR)
is to be set
Formats: SVL
vf (25)
Field used in Simple-V to specify whether "Vertical" Mode is set
(vfirst in the SVSTATE SPR)
Formats: SVL
vs (24)
Field used in Simple-V to specify whether VL (vl in the SVSTATE SPR) is to be set
Formats: SVL
SVi (16:22)
Simple-V immediate field used by setvl for setting VL or MVL
(vl, maxvl in the SVSTATE SPR)
and used as a "Mode of Operation" selector in svstep
Formats: SVL
```
# Appendices
Appendix E Power ISA sorted by opcode
Appendix F Power ISA sorted by version
Appendix G Power ISA sorted by Compliancy Subset
Appendix H Power ISA sorted by mnemonic
| Form | Book | Page | Version | mnemonic | Description |
|------|------|------|---------|----------|-------------|
| SVL | I | # | 3.0B | svstep | Vertical-First Stepping and status reporting |
| SVL | I | # | 3.0B | setvl | Cray-like establishment of Looping (Vector) context |
[[!tag opf_rfc]]