Reinterprets `FI << 16` as a 32-bit float, which is then converted to a
64-bit float and written to `FRT`. This is equivalent to reinterpreting
`FI` as a `BF16` and converting to 64-bit float.
-
There is no need for an Rc=1 variant because this is an immediate loading
-instruction. This frees up one extra bit in the X-Form format for packing
-a full `BF16`.
+instruction.
Example:
`fishmv FRS, FI`
+DX-Form:
+
+| 0-5 | 6-10 | 11-15 | 16-25 | 26-30 | 31 | Form |
+|--------|------|-------|-------|-------|-----|-----|
+| Major | FRS | d1 | d0 | XO | d2 | DX-Form |
+
Strategically similar to how `oris` is used to construct
32-bit Integers, an additional 16-bits of immediate is
inserted into `FRS` to extend its accuracy to
set the upper 16-bits of an FP32 value, `fishmv` contains the
lower 16-bits.
-`fishmv` fits with DX-Form:
-
-| 0-5 | 6-10 | 11-15 | 16-25 | 26-30 | 31 | Form |
-|--------|------|-------|-------|-------|-----|-----|
-| Major | FRS | d1 | d0 | XO | d2 | DX-Form |
+The key difference between using `li` and `oris` to construxt 32-bit
+GPR Immediates and `fishmv` is that the `fmvis` will have converted
+the `BF16` to FP64 (Double) format. This is taken into consideration
+as can be seen in the pseudocode below
Pseudocode:
- fp32 = FRS[0:15] || d0 || d1 || d2
- FRS = Single_to_Double(fp32)
+ fp32 = Double_to_Single(FRS)
+ n = fp32[0:15] || d0 || d1 || d2
+ FRS = Single_to_Double(n)
*This instruction performs a Read-Modify-Write. FRS is read, the additional
16 bit immediate inserted, and the result also written to FRS*