> AArch64 first faulting reads are safe to execute speculatively because the
> hardware is able to return less than a full vector read.
>
> The loads (both "first faulting" (FF) and "non-faulting" (NF)) set a predicate
> register (first fault register) with a mask of loaded elements.

Just interrupting here right away without having read the rest :)

Is this (the content of the predicate register) actually a length?
(i.e. AND-masked with your regular loop/predicate mask?)

I would hope it is, at least conceptually.

For riscv there is no dedicated FoF state, a FoF load just sets the vector 
length to a value potentially lower than before.  It can be read by a control 
register if needed.

I'm just wondering if there is any benefit (for comprehension and otherwise) of 
treating it as a length as well for aarch64?

-- 
Regards
 Robin

Reply via email to