Fault-Only-First Indexed Loads Instructions


lidawei14@...
 

Hi all, 

In this page I would like to discuss about fault-only-first indexed load instructions since we have
certain using cases, for example, SPEC CPU 2006 4.1.bzip2 src/blocksort.c:line 712.

For fault-only-first instructions like vleff.v, they support data dependent loop exits like code below: 
```
for (i=0; i<N; i++){
    t= a[i];
    if (t< 3)
        return t;
}
```

but in some cases we have indirect data access pattern:
```
for (i=0; i<N; i++){
    t= a[b[i]];
    if (t< 3)
        return t;
}
```

We will need to load indices b[i] first and then do an indexed fault-only-first load for a[],
thus this raises a need for fault-only-first indexed load instructions in our V extension. 
In the spec it says fault-only-first instructions could be implemented in future versions,
then I believe it makes sense to have a discussion here.

Join {tech-vector-ext@lists.riscv.org to automatically receive all group messages.