lxvkq
Load VSX Vector Special Value Quadword
lxvkq XT,UIM
Loads a special value into a VSX vector register.
Details
The lxvkq instruction loads one of several predefined special values into the specified VSX vector register based on the UIM field.
Pseudocode Operation
if MSR.VSX=0 then VSX_Unavailable()
if UIM=0b00001 then VSR[32×TX+T] ←0x3FFF_0000_0000_0000_0000_0000_0000_0000 /* QP +1.0 */
if UIM=0b00010 then VSR[32×TX+T] ←0x4000_0000_0000_0000_0000_0000_0000_0000 /* QP +2.0 */
if UIM=0b00011 then VSR[32×TX+T] ←0x4000_8000_0000_0000_0000_0000_0000_0000 /* QP +3.0 */
if UIM=0b00100 then VSR[32×TX+T] ←0x4001_0000_0000_0000_0000_0000_0000_0000 /* QP +4.0 */
if UIM=0b00101 then VSR[32×TX+T] ←0x4001_4000_0000_0000_0000_0000_0000_0000 /* QP +5.0 */
if UIM=0b00110 then VSR[32×TX+T] ←0x4001_8000_0000_0000_0000_0000_0000_0000 /* QP +6.0 */
if UIM=0b00111 then VSR[32×TX+T] ←0x4001_C000_0000_0000_0000_0000_0000_0000 /* QP +7.0 */
if UIM=0b01000 then VSR[32×TX+T] ←0x7FFF_0000_0000_0000_0000_0000_0000_0000 /* QP +Inf */
if UIM=0b01001 then VSR[32×TX+T] ←0x7FFF_8000_0000_0000_0000_0000_0000_0000 /* QP dQNaN */
if UIM=0b10000 then VSR[32×TX+T] ←0x8000_0000_0000_0000_0000_0000_0000_0000 /* QP -0.0 */
if UIM=0b10001 then VSR[32×TX+T] ←0xBFFF_0000_0000_0000_0000_0000_0000_0000 /* QP -1.0 */
if UIM=0b10010 then VSR[32×TX+T] ←0xC000_0000_0000_0000_0000_0000_0000_0000 /* QP -2.0 */
if UIM=0b10011 then VSR[32×TX+T] ←0xC000_8000_0000_0000_0000_0000_0000_0000 /* QP -3.0 */
if UIM=0b10100 then VSR[32×TX+T] ←0xC001_0000_0000_0000_0000_0000_0000_0000 /* QP -4.0 */
if UIM=0b10101 then VSR[32×TX+T] ←0xC001_4000_0000_0000_0000_0000_0000_0000 /* QP -5.0 */
if UIM=0b10110 then VSR[32×TX+T] ←0xC001_8000_0000_0000_0000_0000_0000_0000 /* QP -6.0 */
if UIM=0b10111 then VSR[32×TX+T] ←0xC001_C000_0000_0000_0000_0000_0000_0000 /* QP -7.0 */
if UIM=0b11000 then VSR[32×TX+T] ←0xFFFF_0000_0000_0000_0000_0000_0000_0000 /* QP -Inf */
Programming Note
Loads a VSX register with a constant vector value determined by UIM. The 5-bit UIM field selects from a set of predefined quadword constants (e.g., IEEE infinity, NaN, zero). No memory access is performed. This instruction cannot be used to load arbitrary immediates.
Example
lxvkq vs1, uim
Encoding
Binary Layout
T
0
UIM
16
TX
21
Operands
-
XT
Target Vector-Specific Register -
UIM
Unspecified Immediate, specifies which special value to load