currently it's: 00 DEFAULT default behaviour for operation 01 ELWIDTH=b Byte: 8-bit integer 10 ELWIDTH=h Halfword: 16-bit integer 11 ELWIDTH=w Word: 32-bit integer which seems out of order to me. make make the two bits encode i and have the bit length be 8 << i, or 8 << (3-i) if the default is to be zero. for floating-point encodings, if we wish 64-bit to be the default, but also support 128 bits instead of either f16/bf16, we could still do this, having the shift amount be a signed 2-bit number ;-)
00 DEFAULT default behaviour for operation 01 ELWIDTH=w Word: 32-bit integer 10 ELWIDTH=h Halfword: 16-bit integer 11 ELWIDTH=b Byte: 8-bit integer interestingly it's w and b that swap. yep like it. > for floating-point encodings, if we wish 64-bit to be the default, but also > support 128 bits instead of either f16/bf16, we could still do this, having > the shift amount be a signed 2-bit number ;-) urrr :) can you write it out? (remember bf16 is fly in the ointment)
note that 128-bit can instead be supported by just prefixing the base f128 instructions as described in bug #563. this would mean that the elwidth encodings for fp can still be: 00 default 01 f32 10 f16 11 bf16 (instead of 8-bit)
done