Micro-Architectures should use speculative Shadow-Hold and Cancellation
(or other Transactional Rollback mechanism) when the test fails.
+* **Load, VLi=0**: perform the Memory Load, do not put the result into the regfile yet (or EA into RA). Test the Loaded data: if fail do not store the Load in the register file (or EA into RA). Otherwise proceed with updating regfiles. VL is truncated to "only elements that passed the test"
+* **Store, VLi=0**: even before the Store takes place, perform the test on the data to *be* stored. If fail do not proceed with the Store at all. VL is truncated to "only elements that passed the test"
+
**Load/Store Data-Dependent Fail-First, VLi=1**
By contrast if VLi=1 and the test fails, the Store may proceed *and then*
looping terminates. In this way, when Inclusive the Vector of Truncated results
contains the first-failed data (including RA on Updates)
+* **Load, VLi=1**: perform the Memory Load, complete it in full (including EA into RA). Test the Loaded data: if fail then VL is truncated to "elements tested".
+* **Store, VLi=0**: same as Load. Perform the Store in full and after-the-fact carry out the test of the original data requested to be stored. If fail then VL is truncated to "elements tested".
+
Below is an example of loading the starting addresses of Linked-List
nodes. If VLi=1 it will load the NULL pointer into the Vector of results.
If however VLi=0 it will *exclude* the NULL pointer by truncating VL to
-one Element earlier.
+one Element earlier (only loading non-NULL data into registers).
*Programmer's Note: by also setting the RC1 qualifier as well as setting
VLi=1 it is possible to establish a Predicate Mask such that the first