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
 
Format X-form
Opcode 0xF01F02D0
Extension VSX
Registers Altered MSR

Operands

  • XT
    Target Vector-Specific Register
  • UIM
    Unspecified Immediate, specifies which special value to load