xxspltidp

VSX Vector Splat Immediate Double-Precision

xxspltidp XT, IMM

Spatially duplicates a 32-bit immediate (converted to double) into both double elements.

Details

The instruction splats the double-precision value formed by concatenating imm0 and imm1 into each doubleword element of VSR[XT].

Pseudocode Operation

if MSR.VSX=0 then VSX_Unavailable()
IMM32 ←imm0<<16 | imm1
VSR[32×TX+T].dword[0] ←bfp64_CONVERT_FROM_BFP(IMM32)
VSR[32×TX+T].dword[1] ←bfp64_CONVERT_FROM_BFP(IMM32)

Programming Note

This instruction is used to replicate a double-precision floating-point value across all elements of a VSX vector register. Ensure that the VSX facility is enabled in the MSR register; otherwise, it will raise an exception. The immediate values imm0 and imm1 are concatenated to form a 32-bit integer, which is then converted to a double-precision float and replicated across the vector. Be cautious of alignment requirements for the target vector register.

Example

xxspltidp vs1, 1

Encoding

Binary Layout
1
0
0
6
0
8
//
12
//
14
imm0
16
 
Format 8RR:D-form
Opcode 0xF0000000
Extension VSX
Registers Altered MSR

Operands

  • XT
    Target
  • IMM
    32-bit Value
  • IMM32
    Immediate Value