add potential MV.X and swizzle-mv
authorLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Wed, 26 Jun 2019 03:52:50 +0000 (04:52 +0100)
committerLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Wed, 26 Jun 2019 03:52:50 +0000 (04:52 +0100)
simple_v_extension/specification/discussion.mdwn

index 99a8ac254f2a4664df62620bc8124e7897036898..53c9b053ac7e9e73c607924bf3e53d4df4b3ad25 100644 (file)
@@ -90,11 +90,14 @@ swizzle needs a MV.  see below for a potential way to use the funct7 to do a swi
 +---------------+-------------+-------+----------+----------+--------+----------+--------+--------+
 | RV32-I-type   + imm[11:0]                      + rs1[4:0] + funct3 | rd[4:0]  + opcode + 0b11   |
 +---------------+-------------+-------+----------+----------+--------+----------+--------+--------+
-| RV32-I-type   + rsv[11:8] swizzle[7:0]         + rs1[4:0] + 0b000  | rd[4:0]  + OP-V   + 0b11   |
+| RV32-I-type   + fn4[11:8] swizzle[7:0]         + rs1[4:0] + 0b000  | rd[4:0]  + OP-V   + 0b11   |
 +---------------+-------------+-------+----------+----------+--------+----------+--------+--------+
 
 * funct3 = MV
 * OP-V = 0b1010111
+* fn4 = 4 bit function.
+* fn4 = 0b0000 - INT MV-SWIZZLE ?
+* fn4 = 0b0001 - FP MV-SWIZZLE ?
 
 swizzle (only active on SV or P48/P64 when SUBVL!=0):
 
@@ -122,9 +125,10 @@ potential MV.X?  register-version of MV-swizzle?
 
 * funct3 = MV.X
 * OP-V = 0b1010111
-* funct7 = 0b0000000
-
-potential funct7 = 0b0000001 to say that rs2 is a swizzle argument?
+* funct7 = 0b0000000 - INT MV.X
+* funct7 = 0b0000001 - FP MV.X
+* funct7 = 0b0000010 - INT MV.swizzle to say that rs2 is a swizzle argument?
+* funct7 = 0b0000011 - FP MV.swizzle to say that rs2 is a swizzle argument?
 
 question: do we need a swizzle MV.X as well?