# mv.swizzle TODO: evaluate whether this will fit with [[mv.vec]] # Format | 0.5 |6.10|11.15|16.20|21.....25|26.....30|31| name | |-----|----|-----|-----|---------|---------|--|--------------| | 19 | RT | RA | | XO[0:4] | XO[5:9] |Rc| XL-Form | | 19 | RT | RA |imm | imm | 01 M im |0 | mv.vec.swiz | | 19 | RT | RA |imm | imm | 01 M im |1 | fmv.vec.swiz | | 19 | RT | RA |imm | imm | 11 0 im |0 | mv.swiz | | 19 | RT | RA |imm | imm | 11 0 im |1 | fmv.swiz | this gives a 12 bit immediate across bits 16 to 25 and 29-30. * 3 bits X * 3 bits Y * 3 bits Z * 3 bits W except that the options are: * 0b1NN index 0 thru 3 to place subelement in pos XYZW * 0b000 to indicate "skip" * 0b001 to indicate "constant 0" * 0b010 to indicate "constant 1" (or 1.0) * 0b011 is not needed. Evaluating efforts to encode 12 bit swizzle into less proved unsuccessful: 7^4 wcomes out to 2,400 which is larger than 11 bits Mode M is described in [[mv.vec]]