xvcvbf16spn
VSX Vector Convert bfloat16 to Single-Precision format Non-signaling
Converts a vector of bfloat16 values to single-precision floating-point format.
Details
Converts each bfloat16 value in the source VSR to single-precision (32-bit) floating-point format and stores the results in the target VSR. This is a non-signaling variant that does not raise exceptions for invalid operations. The instruction operates on two elements per 128-bit register in VSX mode.
Pseudocode Operation
XT[0:31] ← ConvertBF16toSP(XB[0:15])
XT[32:63] ← ConvertBF16toSP(XB[16:31])
XT[64:95] ← ConvertBF16toSP(XB[32:47])
XT[96:127] ← ConvertBF16toSP(XB[48:63])
Programming Note
This instruction is used to convert bfloat16 values in a vector to single-precision floating-point format. Ensure that the VSX (Vector Scalar Extensions) are enabled by checking and setting the MSR.VSX bit. The operation processes four elements per iteration, converting the high 16 bits of each source element to the corresponding target element while zeroing out the lower 16 bits. This instruction does not raise exceptions for invalid operations.
Example
Encoding
Operands
-
XT
Target Vector Register -
XB
Source Vector Register