הקוד הזה ניגש לווקטור על-ידי פוינטרים. השיפור בקוד הנוצר משמעותי.
long long sum(long long *vec, unsigned long long len) {
long long s;
for (unsigned long long i = 0; i < len; i++) {
s += *vec++;
}
return (sum);
}
sum:
add t0, zero zero // i = 0
add t2, zero zero // s = 0
beq zero, zero, L
loop:
ld t1, 0(a0) // *vec
add t2,t2, t1 // s += *vec
addi a0, a0, 8 // vec += 8
addi t0, t0, 1 // i += 1
L: bltu t0, a1, loop // if (i < len) goto loop
done:
addi a0, t2, 0 // return value
jalr zero, 0(ra) // return