aec7f89e1ab168d5c7c0185a2963f0ec3cd597c2
[libreriscv.git] / openpower / sv / mv.swizzle.mdwn
1 # mv.swizzle
2
3 # Format
4
5 | 0..5 |6..10|11..15|16.20|21.....25|26.....30|31| name |
6 |------|-----|------|-----|---------|---------|--|---------|
7 | 19 | RT | RA | | XO[0:4] | XO[5:9] |Rc| XL-Form |
8 | 19 | RT | RA |imm | imm | NNNNN |im| mv.swiz |
9
10 also f.mv
11
12 this gives an 11 bit immediate across bits 16 to 25 and bit 31. a permutation based encoding should allow the 12 bits to be covered
13
14 * 3 bits X
15 * 3 bits Y
16 * 3 bits Z
17 * 3 bits W
18
19 except that the options are:
20
21 * 0b1NN index 0 thru 3 to place subelement in pos XYZW
22 * 0b000 to indicate "skip"
23 * 0b001 to indicate "constant 0"
24 * 0b010 to indicate "constant 1" (or 1.0)
25 * 0b011 is not needed.
26
27 this "not needed" means the encoding is actually a lot less. the sequences involve expressing how many 0s and 1s are embedded in amongst the XYZWs which gets really interesting.
28