[Libre-soc-isa] [Bug 1047] SVP64 LD/ST Data-Dependent Fail-First providing linked-list walking
bugzilla-daemon at libre-soc.org
bugzilla-daemon at libre-soc.org
Wed Apr 5 00:32:19 BST 2023
https://bugs.libre-soc.org/show_bug.cgi?id=1047
--- Comment #3 from Luke Kenneth Casson Leighton <lkcl at lkcl.net> ---
from arm-sve-ieee-2017
for (p = &head; p != NULL; ) {
for (i = 0; p != NULL && i < VL/64; p = p->next)
p’[i++] = p;// collect up to VL/64 pointers
for (j = 0; j < i; j++)
res ˆ= p’[j]->val; // gather from pointer vector
}
the first loop is literally DD-FFirst with an immediate of
offsetof(p->next) and VLi=false, ff=RC1 (fail on equal to zero)
which will truncate VL to exclude the NULL.
sv.ld/ff=RC1 *1, 8(*0)
the use of RT=RA+1 creates the dependency-chain. sv.bc with CTR
mode can be used, terminating if there was truncation. which needs
detecting (the NULL). hmmm...
--
You are receiving this mail because:
You are on the CC list for the bug.
More information about the Libre-SOC-ISA
mailing list