[libre-riscv-dev] FP reciprocal sqrt extension proposal

lkcl luke.leighton at gmail.com
Sun Aug 4 06:33:48 BST 2019

On Thursday, July 11, 2019 at 11:45:38 AM UTC+1, Jacob Lifshay wrote:

> For the encoding, I think using an encoding similar to both the 
> fsqrt.* and fdiv.* encodings is a good idea, since frsqrt is similar 
> to both fdiv and fsqrt; Therefore, as an initial proposal, I think 
> using a funct7 value of 0111100 and the rest of the instruction 
> identical to fsqrt is a good idea, since, as far as I'm aware, that 
> doesn't conflict with anything currently. 

ah! rats, i just started looking at the RV32/64G instruction set listings, 
chap 25 V20190621-draft, and hadn't noticed that FSQRT.S is 
funct7=0b0101100 where rs2=00000, FSQRT.D is funct7=0b0101101 and FSQRT.Q 
is funct7=0b0101111

so correspondingly:
FRSQRT.S would need to be funct7=0b011100
FRSQRT.D would need to be funct7=0b011101
FRSQRT.Q would need to be funct7=0b011111

also: where would FSQRT.H go, and likewise FRSQRT.H?  *checks table 11.3* 
section 11.6.... ok so those would be:

FRSQRT.H would need to be funct7=0b011110 and
FSQRT.H would need to be funct7=0b0101110

so the first 2 bits of funct7 select S/D/H/Q, the other 5 select the 
"function type".

More information about the libre-riscv-dev mailing list