xscvdpspn
VSX Scalar Convert Scalar Single-Precision to Vector Single-Precision format Non-signalling
xscvdpspn XT,XB
Converts a scalar single-precision floating-point value to vector single-precision format without raising exceptions for inexact results.
Encoding
Binary Layout
60
T
B
267
BX
TX
Operands
-
XT
Target Vector-Specific Register -
XB
Source Vector-Specific Register
Example
xscvdpspn vs1, vs3
Related
More in VSX
Reference
View in PowerISA v3.1C Specification ↗
OPF Power ISA v3.1C
Description
The instruction converts the contents of doubleword element 0 of VSR[XB] represented in double-precision format to single-precision format and places it into word elements 0 and 1 of VSR[XT]. Word elements 2 and 3 of VSR[XT] are set to 0.
Operation
if MSR.VSX=0 then VSX_Unavailable()
reset_xflags()
src ← bfp_CONVERT_FROM_BFP64(VSR[32×BX+B].dword[0])
result ← bfp32_CONVERT_FROM_BFP(src)
VSR[32×TX+T].word[0] ← result
VSR[32×TX+T].word[1] ← result
VSR[32×TX+T].word[2] ← 0x0000_0000
VSR[32×TX+T].word[3] ← 0x0000_0000
Programming Note
If x is not representable in single-precision, some exponent and/or significand bits will be discarded, likely producing undesirable results. The low-order 29 bits of the significand of x are discarded, more if the unbiased exponent of x is less than -126 (i.e., denormal). Finite values of x having an unbiased exponent less than -150 will return a result of Zero. Finite values of x having an unbiased exponent greater than +127 will result in discarding significant bits of the exponent. SNaN inputs having no significant bits in the upper 23 bits of the significand will return Infinity as the result. No status is set for any of these cases. xscvdpsp should be used to convert a scalar double-precision value to vector single-precision format. xscvdpspn should be used to convert a scalar single-precision value to vector single-precision format for non-signalling conversion.