[libre-riscv-dev] SV auto-width

Luke Kenneth Casson Leighton lkcl at lkcl.net
Wed Jan 9 07:31:28 GMT 2019


On Wed, Jan 9, 2019 at 6:03 AM Jacob Lifshay <programmerjake at gmail.com> wrote:

> We will need fast f32 <-> i16 at least since that is used for 16-bit
> z-buffers.

 one potential workaround is to actually have a z-buffer opcode.

 f32-i16 would on first thought need to be farmed to the 8/16-bit
Function Units, as those are where i was planning to have the
xBitManip that will be able to cope with the byte-shuffling involved.

 however... those are supposed to only deal with "corner-cases".  it
looks like we'd need some xBitManip on the 32-bit FU side as well.

 the issue is that the 16 bit results would need to go to the same
32-bit destination register.  odd elements would go to the LSW, even
elements to the HSW.

 it's doable: it just means 6 GOPs / sec (i think).

> Since we don't have indexed load/store and need to manually
> construct pointer vectors we will need fast i32 -> i64. We will also need
> fast i32 <-> f32.

 i32->f32 is easy, no bitwidth changes there.  that can be done at 12
GOPs/sec.  i32->i64 would be dual-issue due to the 64-bit dest width,
that means 6 GOPs / sec.

so, it's doable, i think.

l..



More information about the libre-riscv-dev mailing list