VL is truncated to *exclude* the current element, otherwise it is
included. SVSTATE.MVL is not altered: only VL.
* **LRu**: Link Register Update, used in conjunction with LK=1.
+ When LRu=1,LK=0, Link Register is updated unconditionally.
When LRu=1,LK=1, Link Register will
only be updated if the Branch Condition succeeds.
When LRu=0,LK=1, Link Register will only be updated if
if AA then NIA <-iea EXTS(BD || 0b00)
else NIA <-iea CIA + EXTS(BD || 0b00)
lr_ok <- ¬lr_ok
-if LK & lr_ok then LR <-iea CIA + 4
+if (LK & lr_ok) | (¬LK & lr_ok) then LR <-iea CIA + 4
```
Below is the pseudocode for SVP64 Branches, which is a little less
if AA then NIA <-iea EXTS(BD || 0b00)
else NIA <-iea CIA + EXTS(BD || 0b00)
lr_ok <- ¬lr_ok
-if LK & lr_ok then LR <-iea CIA + 4
+if (LK & lr_ok) | (¬LK & lr_ok) then LR <-iea CIA + 4
```
Pseudocode for Vertical-First Mode:
if ctr_ok & cond_ok then
NIA <-iea LR[0:61] || 0b00
lr_ok = ¬lr_ok
- if LK & lr_ok then LR <-iea CIA + 4
+ if (LK & lr_ok) | (¬LK & lr_ok) then LR <-iea CIA + 4
```
The reason why should be clear from this being a Vector loop: