Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

WS7: VMX/VSX Implementation

Owner: TBD Duration: 24-32 weeks Priority: High (Critical for LCS Compliance)

💬 Discuss WS7: This is our most complex workstream! Join #powercommons:matrix.org to discuss VMX/VSX implementation strategies, share resources, or collaborate on this critical component.

Objectives

Implement VMX (AltiVec) and VSX (Vector-Scalar Extension) for Linux Compatible Subset (LCS) compliance.

Critical Importance

This is the largest and most resource-intensive workstream. Without VMX/VSX:

  • Cannot run standard Linux distributions (Fedora, Ubuntu, RHEL)
  • glibc requires VMX/VSX for optimized string and memory operations
  • Many applications fail (compiled with -mcpu=power8 or later)
  • ❌ Only achieves SFFS (Server Floating Point Subset), not LCS

With VMX/VSX:

  • LCS Compliance - industry standard for Linux on POWER
  • Run unmodified distros - Fedora, Ubuntu, RHEL work out-of-box
  • Application compatibility - vast majority of ppc64le software works
  • Performance - SIMD operations for HPC, multimedia, crypto

Background

VMX (Vector Multimedia Extension)

Also known as AltiVec, VMX provides:

  • 32 x 128-bit vector registers (VR0-VR31)
  • SIMD operations on integer and floating-point data
  • Data types: byte, halfword, word, single-precision float
  • ~200 instructions for parallel processing
  • Introduced in POWER6, based on original AltiVec

VSX (Vector-Scalar Extension)

VSX extends VMX with:

  • 64 x 128-bit registers (VSR0-VSR63)
    • VSR0-VSR31 overlay FPR0-FPR31 (scalar FP registers)
    • VSR32-VSR63 overlay VR0-VR31 (VMX vector registers)
  • Double-precision floating-point SIMD
  • Scalar and vector operations in unified register file
  • ~200 additional instructions
  • Introduced in POWER7

Register File Organization

VSX View (64 x 128-bit registers):
┌─────────────────────────────────────────┐
│ VSR0-31  (overlay FPR0-31 in low 64b)  │ ← Scalar FP + VSX
│ VSR32-63 (overlay VR0-31)              │ ← VMX vectors
└─────────────────────────────────────────┘

Legacy View:
FPR0-31:  64-bit scalar floating-point (existing A2 registers)
VR0-31:   128-bit VMX vector registers (NEW)

Tasks

Phase 0: Planning and Architecture (Weeks 1-2)

Phase 1: Register File and Basic Infrastructure (Weeks 3-6)

Phase 2: VMX Integer Instructions (Weeks 7-12)

VMX Integer Arithmetic

VMX Integer Logic and Shift

VMX Integer Compare and Permute

Phase 3: VMX Floating-Point Instructions (Weeks 13-16)

Issues #262-283: VMX Single-Precision FP (22 instructions)

  • Priority: High
  • Duration: 15 days total
  • Categories: Arithmetic, Compare, Convert, Rounding, Estimate

Key Instructions:

  • Vector FP add/subtract: vaddfp, vsubfp
  • Vector FP multiply-add: vmaddfp
  • Vector FP compare: vcmpeqfp, vcmpgtfp, vcmpgefp, vcmpbfp
  • Vector FP convert: vcfsx, vcfux, vctsx, vctux
  • Vector FP rounding: vrfin, vrfiz, vrfip, vrfim
  • Vector FP estimate: vrefp, vrsqrtefp, vlogefp, vexptefp
  • Vector FP min/max: vmaxfp, vminfp

Implementation Notes:

  • Reuse existing FPU if possible
  • May need 4-way SIMD FPU (expensive)
  • Consider multi-cycle execution
  • Ensure IEEE 754 compliance
  • Labels: phase:3-vmx-fp, category:fp-ops, precision:single

Phase 4: VMX Load/Store Instructions (Weeks 17-18)

Issues #284-315: VMX Memory Operations (32 instructions)

  • Priority: High
  • Duration: 10 days total
  • Categories: Load, Store, Pack, Unpack

Key Instructions:

  • Vector load: lvx, lvxl (aligned)
  • Vector store: stvx, stvxl (aligned)
  • Vector load element: lvebx, lvehx, lvewx
  • Vector store element: stvebx, stvehx, stvewx
  • Vector load splat: lvsplatb, lvsplath, lvsplatw
  • Vector alignment: lvsl, lvsr (load vector for shift left/right)
  • Pack/unpack: vpkuhum, vpkuwum, vpkuhus, vpkuwus, vpkshss, vpkswss, vpkshus, vpkswus, vpkpx, vupkhsb, vupkhsh, vupklsb, vupklsh, vupkhpx, vupklpx

Implementation Notes:

  • Most VMX loads/stores require 16-byte alignment
  • Unaligned access requires multiple operations + permute
  • Trap on misalignment or emulate in software
  • Pack/unpack operations convert between widths with saturation
  • Labels: phase:4-vmx-load-store, category:memory, category:pack-unpack

Phase 5: VSX Scalar Instructions (Weeks 19-22)

Issues #316-367: VSX Scalar Double-Precision (52 instructions)

  • Priority: High
  • Duration: 20 days total
  • Categories: Arithmetic, Compare, Convert, Estimate, Special

Key Instructions:

  • Scalar FP add/subtract: xsadddp, xssubdp
  • Scalar FP multiply/divide: xsmuldp, xsdivdp
  • Scalar FP multiply-add: xsmaddadp, xsmaddmdp, xsmsubadp, xsmsubmdp, xsnmaddadp, xsnmaddmdp, xsnmsubadp, xsnmsubmdp
  • Scalar FP compare: xscmpudp, xscmpodp, xscmpeqdp, xscmpgtdp, xscmpgedp
  • Scalar FP convert: xscvdpsp, xscvspdp, xscvdpsxds, xscvdpsxws, xscvdpuxds, xscvdpuxws, xscvsxddp, xscvuxddp, xscvsxdsp, xscvuxdsp
  • Scalar FP sqrt: xssqrtdp
  • Scalar FP reciprocal estimate: xsredp, xsrsqrtedp
  • Scalar FP abs/negate/copy sign: xsabsdp, xsnabsdp, xsnegdp, xscpsgndp
  • Scalar FP max/min: xsmaxdp, xsmindp
  • Scalar FP round/truncate: xsrdpic, xsrdpim, xsrdpip, xsrdpiz, xsrdpi

Implementation Notes:

  • VSX scalar ops use VSR0-63 (overlap with FPR0-31)
  • Higher precision than VMX single-precision
  • IEEE 754 compliance required
  • Labels: phase:5-vsx-scalar, category:fp-ops, precision:double

Phase 6: VSX Vector Instructions (Weeks 23-26)

Issues #368-456: VSX Vector Instructions (89 instructions)

  • Priority: High
  • Duration: 48 days total
  • Categories: FP Arithmetic, FP Compare, FP Convert, Logical, Permute, Load/Store

VSX Vector FP Arithmetic (Double/Single Precision):

  • Vector FP add/subtract: xvadddp, xvaddsp, xvsubdp, xvsubsp
  • Vector FP multiply/divide: xvmuldp, xvmulsp, xvdivdp, xvdivsp
  • Vector FP multiply-add: xvmaddadp, xvmaddmdp, xvmsubadp, xvmsubmdp, xvnmaddadp, xvnmaddmdp, xvnmsubadp, xvnmsubmdp (both DP and SP variants)
  • Vector FP sqrt: xvsqrtdp, xvsqrtsp
  • Vector FP reciprocal estimate: xvredp, xvresp, xvrsqrtedp, xvrsqrtesp
  • Vector FP max/min: xvmaxdp, xvmaxsp, xvmindp, xvminsp

VSX Vector FP Compare & Convert:

  • Vector FP compare: xvcmpeqdp, xvcmpeqsp, xvcmpgtdp, xvcmpgtsp, xvcmpgedp, xvcmpgesp
  • Vector FP convert: xvcvdpsp, xvcvspdp, xvcvdpsxds, xvcvdpsxws, xvcvdpuxds, xvcvdpuxws, xvcvspsxds, xvcvspsxws, xvcvspuxds, xvcvspuxws, xvcvsxddp, xvcvsxdsp, xvcvsxwdp, xvcvsxwsp, xvcvuxddp, xvcvuxdsp, xvcvuxwdp, xvcvuxwsp
  • Vector FP round/truncate: xvrdpic, xvrdpim, xvrdpip, xvrdpiz, xvrdpi, xvrspic, xvrspim, xvrspip, xvrspiz, xvrspi
  • Vector FP abs/negate/copy sign: xvabsdp, xvabssp, xvnabsdp, xvnabssp, xvnegdp, xvnegsp, xvcpsgndp, xvcpsgnsp

VSX Permute & Logical Operations:

  • Permute: xxpermdi, xxsldwi
  • Select: xxsel
  • Merge: xxmrghw, xxmrglw
  • Splat: xxspltw
  • Logical: xxland, xxlandc, xxlor, xxlorc, xxlxor, xxlnor, xxleqv, xxlnand

VSX Load/Store Operations:

  • Load/store doubleword: lxsdx, stxsdx
  • Load/store word: lxsiwax, lxsiwzx, stxsiwx
  • Load/store vector: lxvd2x, lxvw4x, stxvd2x, stxvw4x, lxvdsx

Implementation Notes:

  • VSX vector operations process 2x double-precision or 4x single-precision values in parallel
  • Uses VSR0-63 (full 128-bit registers)
  • Requires careful SIMD execution unit design
  • Labels: phase:6-vsx-vector, category:fp-ops, category:logical, category:permute, category:memory

Phase 7: Exception and Context Management (Weeks 27-28)

Issues #457-460: Exception and Context Management (4 issues)

  • Priority: Critical
  • Duration: 32 days total
  • Categories: Exception handling, Context switching, Register coherency

Phase 8: Testing and Verification (Weeks 29-32)

Issues #461-464: Testing and Verification (4 issues)

  • Priority: Critical
  • Duration: 60 days total
  • Categories: Unit testing, Integration testing, Performance testing

Instruction Count Summary

CategoryVMX InstructionsVSX InstructionsTotal
Integer Arithmetic25025
Integer Logic/Shift25025
Integer Compare/Select25025
Integer Load/Store25025
FP Arithmetic (SP)25025
FP Convert/Round (SP)15015
Scalar FP (DP)05050
Vector FP (DP/SP)05050
Permute/Logical102030
Load/Store (VSX)03030
Miscellaneous202040
Total~170~170~340

Note: Actual count varies by ISA version, some instructions optional.

Integration with A2 Core

Pipeline Integration

┌─────────┐   ┌────────┐   ┌─────────┐   ┌────────┐   ┌──────────┐
│ I-Fetch │ → │ Decode │ → │ Issue   │ → │ VMX/   │ → │ Write-   │
│         │   │        │   │         │   │ VSX    │   │ back     │
│         │   │        │   │         │   │ EXU    │   │          │
└─────────┘   └────────┘   └─────────┘   └────────┘   └──────────┘
                                              ↓
                                         VR0-31, VSR0-63
                                         Register File

Key Integration Points

  1. Instruction Decode: Recognize VMX/VSX opcodes
  2. Issue Logic: Schedule to VMX/VSX execution unit
  3. Register Renaming: Extend to vector registers (if applicable)
  4. Execution: New 128-bit datapath
  5. Writeback: Write 128-bit results to register file
  6. Load/Store Unit: Handle 16-byte vector operations
  7. Exception Logic: VMX/VSX unavailable exceptions

Potential Issues

  • Frequency Impact: 128-bit datapath may slow critical path
  • Area: Large register file (64 x 128-bit = 8KB)
  • Power: Vector operations consume more power
  • Verification: 400+ new instructions to verify

Dependencies

  • WS1: Some VMX/VSX instructions depend on base ISA updates
  • Parallel with WS2, WS3, WS4
  • Must complete before WS9 (integration)

Success Criteria

  • All mandatory LCS VMX/VSX instructions implemented
  • Register file (64 x 128-bit) functional
  • Exception handling (unavailable exception) works
  • Context switching validated
  • Pass ISA compliance VMX/VSX tests
  • glibc test suite passes (critical for LCS)
  • Linux boots with VMX/VSX enabled
  • Standard Linux distributions (Fedora, Ubuntu) boot

Critical Risks

Risk 1: Schedule Overrun

Probability: High Impact: Critical Mitigation:

  • Evaluate open source options early
  • Consider phased approach (VMX first)
  • Allocate contingency time

Risk 2: Frequency Degradation

Probability: Medium Impact: High Mitigation:

  • Multi-cycle execution for complex operations
  • Pipeline vector operations
  • Careful physical design

Risk 3: Verification Complexity

Probability: High Impact: High Mitigation:

  • Start verification early
  • Reuse ISA compliance tests
  • Automated test generation

Deliverables

  1. ✅ VMX/VSX architecture specification
  2. ✅ RTL implementation (all instructions)
  3. ✅ 64 x 128-bit register file
  4. ✅ Exception handling
  5. ✅ Test suite (unit and integration tests)
  6. ✅ Verification report (compliance test results)
  7. ✅ Integration guide
  8. ✅ Performance benchmarks

Timeline Visualization

Week   Phase                          Key Deliverable
----   -----                          ---------------
1-2    Planning                       ✓ Architecture spec
3-6    Register file                  ✓ VR0-31, VSR0-63
7-12   VMX integer                    ✓ ~75 instructions
13-16  VMX floating-point            ✓ ~50 instructions
17-18  VMX load/store                ✓ ~25 instructions
19-22  VSX scalar                     ✓ ~50 instructions
23-26  VSX vector                     ✓ ~100 instructions
27-28  Exception handling             ✓ Context switching
29-32  Testing & integration          ✓ LCS compliance

Risk Windows:
Week 3-6:   High (register file area and timing)
Week 13-16: High (floating-point implementation complexity)
Week 29-32: Medium (verification and debugging)

References

  • Power ISA v3.1C Book I, Chapters 6 & 7
  • AltiVec Programming Interface Manual
  • VSX Programming Guide
  • glibc source: sysdeps/powerpc/powerpc64/
  • Linux kernel: arch/powerpc/kernel/vector.S
  • OpenPOWER Foundation: VMX/VSX compliance tests

Status: Planning Next Step: Requirements analysis and open source evaluation (Issue #170)

Issues

Status: 295 open, 0 closed (0/295 complete)

#TitleCategoryTagsStatusPriorityAssignee
#147VMX/VSX requirements analysisAnalysis-⬜ Open🔴 Critical-
#148Design VMX/VSX execution unitArchitecture-⬜ Open🔴 Critical-
#149Implement 128-bit vector register file (VR0-31)Register-file-⬜ Open🔴 Critical-
#150Implement VSX register extensions (VSR0-63)Register-file-⬜ Open🔴 Critical-
#151Implement VSX register extensions (VSR0-63)Register-file-⬜ Open🔴 Critical-
#152Implement VSCR registerControl-register-⬜ Open🟠 High-
#153Update MSR for VMX/VSXControl-register-⬜ Open🟠 High-
#154Implement vaddubm instructionArithmetic-⬜ Open🟠 High-
#155Implement vadduhm instructionArithmetic-⬜ Open🟠 High-
#156Implement vadduwm instructionArithmetic-⬜ Open🟠 High-
#157Implement vaddudm instructionArithmetic-⬜ Open🟠 High-
#158Implement vsububm instructionArithmetic-⬜ Open🟠 High-
#159Implement vsubuhm instructionArithmetic-⬜ Open🟠 High-
#160Implement vsubuwm instructionArithmetic-⬜ Open🟠 High-
#161Implement vsubudm instructionArithmetic-⬜ Open🟠 High-
#162Implement vaddsbs instructionArithmetic-⬜ Open🟠 High-
#163Implement vaddshs instructionArithmetic-⬜ Open🟠 High-
#164Implement vaddsws instructionArithmetic-⬜ Open🟠 High-
#165Implement vaddubs instructionArithmetic-⬜ Open🟠 High-
#166Implement vadduhs instructionArithmetic-⬜ Open🟠 High-
#167Implement vadduws instructionArithmetic-⬜ Open🟠 High-
#168Implement vsubsbs instructionArithmetic-⬜ Open🟠 High-
#169Implement vsubshs instructionArithmetic-⬜ Open🟠 High-
#170Implement vsubsws instructionArithmetic-⬜ Open🟠 High-
#171Implement vsububs instructionArithmetic-⬜ Open🟠 High-
#172Implement vsubuhs instructionArithmetic-⬜ Open🟠 High-
#173Implement vsubuws instructionArithmetic-⬜ Open🟠 High-
#174Implement vavgub instructionArithmetic-⬜ Open🟠 High-
#175Implement vavguh instructionArithmetic-⬜ Open🟠 High-
#176Implement vavguw instructionArithmetic-⬜ Open🟠 High-
#177Implement vavgsb instructionArithmetic-⬜ Open🟠 High-
#178Implement vavgsh instructionArithmetic-⬜ Open🟠 High-
#179Implement vavgsw instructionArithmetic-⬜ Open🟠 High-
#180Implement vmaxsb instructionArithmetic-⬜ Open🟠 High-
#181Implement vmaxsh instructionArithmetic-⬜ Open🟠 High-
#182Implement vmaxsw instructionArithmetic-⬜ Open🟠 High-
#183Implement vmaxsd instructionArithmetic-⬜ Open🟠 High-
#184Implement vmaxub instructionArithmetic-⬜ Open🟠 High-
#185Implement vmaxuh instructionArithmetic-⬜ Open🟠 High-
#186Implement vmaxuw instructionArithmetic-⬜ Open🟠 High-
#187Implement vmaxud instructionArithmetic-⬜ Open🟠 High-
#188Implement vminsb instructionArithmetic-⬜ Open🟠 High-
#189Implement vminsh instructionArithmetic-⬜ Open🟠 High-
#190Implement vminsw instructionArithmetic-⬜ Open🟠 High-
#191Implement vminsd instructionArithmetic-⬜ Open🟠 High-
#192Implement vminub instructionArithmetic-⬜ Open🟠 High-
#193Implement vminuh instructionArithmetic-⬜ Open🟠 High-
#194Implement vminuw instructionArithmetic-⬜ Open🟠 High-
#195Implement vminud instructionArithmetic-⬜ Open🟠 High-
#196Implement vand instructionLogic-⬜ Open🟠 High-
#197Implement vandc instructionLogic-⬜ Open🟠 High-
#198Implement vor instructionLogic-⬜ Open🟠 High-
#199Implement vorc instructionLogic-⬜ Open🟠 High-
#200Implement vxor instructionLogic-⬜ Open🟠 High-
#201Implement vnor instructionLogic-⬜ Open🟠 High-
#202Implement vnot instructionLogic-⬜ Open🟠 High-
#203Implement vslb instructionShift-⬜ Open🟠 High-
#204Implement vslh instructionShift-⬜ Open🟠 High-
#205Implement vslw instructionShift-⬜ Open🟠 High-
#206Implement vsld instructionShift-⬜ Open🟠 High-
#207Implement vsrb instructionShift-⬜ Open🟠 High-
#208Implement vsrh instructionShift-⬜ Open🟠 High-
#209Implement vsrw instructionShift-⬜ Open🟠 High-
#210Implement vsrd instructionShift-⬜ Open🟠 High-
#211Implement vsrab instructionShift-⬜ Open🟠 High-
#212Implement vsrah instructionShift-⬜ Open🟠 High-
#213Implement vsrad instructionShift-⬜ Open🟠 High-
#214Implement vrlb instructionShift-⬜ Open🟠 High-
#215Implement vrlh instructionShift-⬜ Open🟠 High-
#216Implement vrlw instructionShift-⬜ Open🟠 High-
#217Implement vrld instructionShift-⬜ Open🟠 High-
#218Implement vcmpequb instructionCompare-⬜ Open🟠 High-
#219Implement vcmpequh instructionCompare-⬜ Open🟠 High-
#220Implement vcmpequw instructionCompare-⬜ Open🟠 High-
#221Implement vcmpequd instructionCompare-⬜ Open🟠 High-
#222Implement vcmpgtsb instructionCompare-⬜ Open🟠 High-
#223Implement vcmpgtsh instructionCompare-⬜ Open🟠 High-
#224Implement vcmpgtsw instructionCompare-⬜ Open🟠 High-
#225Implement vcmpgtsd instructionCompare-⬜ Open🟠 High-
#226Implement vcmpgtub instructionCompare-⬜ Open🟠 High-
#227Implement vcmpgtuh instructionCompare-⬜ Open🟠 High-
#228Implement vcmpgtuw instructionCompare-⬜ Open🟠 High-
#229Implement vcmpgtud instructionCompare-⬜ Open🟠 High-
#230Implement vsel instructionPermute-⬜ Open🟠 High-
#231Implement vperm instructionPermute-⬜ Open🟠 High-
#232Implement vpermxor instructionPermute-⬜ Open🟠 High-
#233Implement vmrghb instructionMerge-⬜ Open🟠 High-
#234Implement vmrghh instructionMerge-⬜ Open🟠 High-
#235Implement vmrghw instructionMerge-⬜ Open🟠 High-
#236Implement vmrglb instructionMerge-⬜ Open🟠 High-
#237Implement vmrglh instructionMerge-⬜ Open🟠 High-
#238Implement vmrglw instructionMerge-⬜ Open🟠 High-
#239Implement vaddfp instructionArithmetic-⬜ Open🟠 High-
#240Implement vsubfp instructionArithmetic-⬜ Open🟠 High-
#241Implement vmaddfp instructionArithmetic-⬜ Open🟠 High-
#242Implement vmulfp instructionArithmetic-⬜ Open🟠 High-
#243Implement vmaxfp instructionArithmetic-⬜ Open🟠 High-
#244Implement vminfp instructionArithmetic-⬜ Open🟠 High-
#245Implement vcmpeqfp instructionCompare-⬜ Open🟠 High-
#246Implement vcmpgtfp instructionCompare-⬜ Open🟠 High-
#247Implement vcmpgefp instructionCompare-⬜ Open🟠 High-
#248Implement vcmpbfp instructionCompare-⬜ Open🟠 High-
#249Implement vcfsx instructionConvert-⬜ Open🟠 High-
#250Implement vcfux instructionConvert-⬜ Open🟠 High-
#251Implement vctsx instructionConvert-⬜ Open🟠 High-
#252Implement vctux instructionConvert-⬜ Open🟠 High-
#253Implement vrfin instructionRounding-⬜ Open🟠 High-
#254Implement vrfiz instructionRounding-⬜ Open🟠 High-
#255Implement vrfip instructionRounding-⬜ Open🟠 High-
#256Implement vrfim instructionRounding-⬜ Open🟠 High-
#257Implement vrefp instructionEstimate-⬜ Open🟠 High-
#258Implement vrsqrtefp instructionEstimate-⬜ Open🟠 High-
#259Implement vlogefp instructionEstimate-⬜ Open🟠 High-
#260Implement vexptefp instructionEstimate-⬜ Open🟠 High-
#261Implement lvx instructionLoadstore-⬜ Open🟠 High-
#262Implement lvxl instructionLoadstore-⬜ Open🟠 High-
#263Implement stvx instructionLoadstore-⬜ Open🟠 High-
#264Implement stvxl instructionLoadstore-⬜ Open🟠 High-
#265Implement lvebx instructionLoadstore-⬜ Open🟠 High-
#266Implement lvehx instructionLoadstore-⬜ Open🟠 High-
#267Implement lvewx instructionLoadstore-⬜ Open🟠 High-
#268Implement stvebx instructionLoadstore-⬜ Open🟠 High-
#269Implement stvehx instructionLoadstore-⬜ Open🟠 High-
#270Implement stvewx instructionLoadstore-⬜ Open🟠 High-
#271Implement lvsl instructionLoadstore-⬜ Open🟠 High-
#272Implement lvsr instructionLoadstore-⬜ Open🟠 High-
#273Implement vpkuhum instructionLoadstore-⬜ Open🟠 High-
#274Implement vpkuwum instructionLoadstore-⬜ Open🟠 High-
#275Implement vpkudum instructionLoadstore-⬜ Open🟠 High-
#276Implement vpkuhus instructionLoadstore-⬜ Open🟠 High-
#277Implement vpkuwus instructionLoadstore-⬜ Open🟠 High-
#278Implement vpkudus instructionLoadstore-⬜ Open🟠 High-
#279Implement vpkshss instructionLoadstore-⬜ Open🟠 High-
#280Implement vpkswss instructionLoadstore-⬜ Open🟠 High-
#281Implement vpksdss instructionLoadstore-⬜ Open🟠 High-
#282Implement vpkshus instructionLoadstore-⬜ Open🟠 High-
#283Implement vpkswus instructionLoadstore-⬜ Open🟠 High-
#284Implement vpksdus instructionLoadstore-⬜ Open🟠 High-
#285Implement vupkhsb instructionLoadstore-⬜ Open🟠 High-
#286Implement vupkhsh instructionLoadstore-⬜ Open🟠 High-
#287Implement vupkhsw instructionLoadstore-⬜ Open🟠 High-
#288Implement vupklsb instructionLoadstore-⬜ Open🟠 High-
#289Implement vupklsh instructionLoadstore-⬜ Open🟠 High-
#290Implement vupklsw instructionLoadstore-⬜ Open🟠 High-
#291Implement vupkhpx instructionLoadstore-⬜ Open🟠 High-
#292Implement vupklpx instructionLoadstore-⬜ Open🟠 High-
#293Implement xsadddp instructionArithmetic-⬜ Open🟠 High-
#294Implement xssubdp instructionArithmetic-⬜ Open🟠 High-
#295Implement xsmuldp instructionArithmetic-⬜ Open🟠 High-
#296Implement xsdivdp instructionArithmetic-⬜ Open🟠 High-
#297Implement xssqrtdp instructionArithmetic-⬜ Open🟠 High-
#298Implement xsredp instructionArithmetic-⬜ Open🟠 High-
#299Implement xsrsqrtedp instructionArithmetic-⬜ Open🟠 High-
#300Implement xsmaddadp instructionArithmetic-⬜ Open🟠 High-
#301Implement xsmaddmdp instructionArithmetic-⬜ Open🟠 High-
#302Implement xsmsubadp instructionArithmetic-⬜ Open🟠 High-
#303Implement xsmsubmdp instructionArithmetic-⬜ Open🟠 High-
#304Implement xsnmaddadp instructionArithmetic-⬜ Open🟠 High-
#305Implement xsnmaddmdp instructionArithmetic-⬜ Open🟠 High-
#306Implement xsnmsubadp instructionArithmetic-⬜ Open🟠 High-
#307Implement xsnmsubmdp instructionArithmetic-⬜ Open🟠 High-
#308Implement xsmaxdp instructionArithmetic-⬜ Open🟠 High-
#309Implement xsmindp instructionArithmetic-⬜ Open🟠 High-
#310Implement xsmaxcdp instructionArithmetic-⬜ Open🟠 High-
#311Implement xsmincdp instructionArithmetic-⬜ Open🟠 High-
#312Implement xscmpodp instructionCompare-⬜ Open🟠 High-
#313Implement xscmpudp instructionCompare-⬜ Open🟠 High-
#314Implement xscmpeqdp instructionCompare-⬜ Open🟠 High-
#315Implement xscmpgtdp instructionCompare-⬜ Open🟠 High-
#316Implement xscmpgedp instructionCompare-⬜ Open🟠 High-
#317Implement xsaddsp instruction--⬜ Open🟠 High-
#318Implement xssubsp instruction--⬜ Open🟠 High-
#319Implement xsmulsp instruction--⬜ Open🟠 High-
#320Implement xsdivsp instruction--⬜ Open🟠 High-
#321Implement xssqrtsp instruction--⬜ Open🟠 High-
#322Implement xsresp instruction--⬜ Open🟠 High-
#323Implement xsrsqrtesp instruction--⬜ Open🟠 High-
#324Implement xscvdpsp instructionConvert-⬜ Open🟠 High-
#325Implement xscvspdp instructionConvert-⬜ Open🟠 High-
#326Implement xscvdpsxds instructionConvert-⬜ Open🟠 High-
#327Implement xscvdpsxws instructionConvert-⬜ Open🟠 High-
#328Implement xscvdpuxds instructionConvert-⬜ Open🟠 High-
#329Implement xscvdpuxws instructionConvert-⬜ Open🟠 High-
#330Implement xscvsxddp instructionConvert-⬜ Open🟠 High-
#331Implement xscvuxddp instructionConvert-⬜ Open🟠 High-
#332Implement xscvsxdsp instructionConvert-⬜ Open🟠 High-
#333Implement xscvuxdsp instructionConvert-⬜ Open🟠 High-
#334Implement xsrdpi instruction--⬜ Open🟠 High-
#335Implement xsrdpic instruction--⬜ Open🟠 High-
#336Implement xsrdpim instruction--⬜ Open🟠 High-
#337Implement xsrdpip instruction--⬜ Open🟠 High-
#338Implement xsrdpiz instruction--⬜ Open🟠 High-
#339Implement xsabsdp instruction--⬜ Open🟠 High-
#340Implement xsnabsdp instruction--⬜ Open🟠 High-
#341Implement xsnegdp instruction--⬜ Open🟠 High-
#342Implement xscpsgndp instruction--⬜ Open🟠 High-
#343Implement xstdivdp instruction--⬜ Open🟠 High-
#344Implement xstsqrtdp instruction--⬜ Open🟠 High-
#345Implement xvadddp instructionArithmetic-⬜ Open🟠 High-
#346Implement xvsubdp instructionArithmetic-⬜ Open🟠 High-
#347Implement xvmuldp instructionArithmetic-⬜ Open🟠 High-
#348Implement xvdivdp instructionArithmetic-⬜ Open🟠 High-
#349Implement xvsqrtdp instructionArithmetic-⬜ Open🟠 High-
#350Implement xvredp instructionArithmetic-⬜ Open🟠 High-
#351Implement xvrsqrtedp instructionArithmetic-⬜ Open🟠 High-
#352Implement xvmaddadp instructionArithmetic-⬜ Open🟠 High-
#353Implement xvmaddmdp instructionArithmetic-⬜ Open🟠 High-
#354Implement xvmsubadp instructionArithmetic-⬜ Open🟠 High-
#355Implement xvmsubmdp instructionArithmetic-⬜ Open🟠 High-
#356Implement xvnmaddadp instructionArithmetic-⬜ Open🟠 High-
#357Implement xvnmaddmdp instructionArithmetic-⬜ Open🟠 High-
#358Implement xvnmsubadp instructionArithmetic-⬜ Open🟠 High-
#359Implement xvnmsubmdp instructionArithmetic-⬜ Open🟠 High-
#360Implement xvmaxdp instructionArithmetic-⬜ Open🟠 High-
#361Implement xvmindp instructionArithmetic-⬜ Open🟠 High-
#362Implement xvcmpeqdp instructionCompare-⬜ Open🟠 High-
#363Implement xvcmpgtdp instructionCompare-⬜ Open🟠 High-
#364Implement xvcmpgedp instructionCompare-⬜ Open🟠 High-
#365Implement xvaddsp instructionArithmetic-⬜ Open🟠 High-
#366Implement xvsubsp instructionArithmetic-⬜ Open🟠 High-
#367Implement xvmulsp instructionArithmetic-⬜ Open🟠 High-
#368Implement xvdivsp instructionArithmetic-⬜ Open🟠 High-
#369Implement xvsqrtsp instructionArithmetic-⬜ Open🟠 High-
#370Implement xvresp instructionArithmetic-⬜ Open🟠 High-
#371Implement xvrsqrtesp instructionArithmetic-⬜ Open🟠 High-
#372Implement xvmaddasp instructionArithmetic-⬜ Open🟠 High-
#373Implement xvmaddmsp instructionArithmetic-⬜ Open🟠 High-
#374Implement xvmsubasp instructionArithmetic-⬜ Open🟠 High-
#375Implement xvmsubmsp instructionArithmetic-⬜ Open🟠 High-
#376Implement xvnmaddasp instructionArithmetic-⬜ Open🟠 High-
#377Implement xvnmaddmsp instructionArithmetic-⬜ Open🟠 High-
#378Implement xvnmsubasp instructionArithmetic-⬜ Open🟠 High-
#379Implement xvnmsubmsp instructionArithmetic-⬜ Open🟠 High-
#380Implement xvmaxsp instructionArithmetic-⬜ Open🟠 High-
#381Implement xvminsp instructionArithmetic-⬜ Open🟠 High-
#382Implement xvcmpeqsp instructionCompare-⬜ Open🟠 High-
#383Implement xvcmpgtsp instructionCompare-⬜ Open🟠 High-
#384Implement xvcmpgesp instructionCompare-⬜ Open🟠 High-
#385Implement xvcvdpsp instructionConvert-⬜ Open🟠 High-
#386Implement xvcvspdp instructionConvert-⬜ Open🟠 High-
#387Implement xvcvdpsxds instructionConvert-⬜ Open🟠 High-
#388Implement xvcvdpsxws instructionConvert-⬜ Open🟠 High-
#389Implement xvcvdpuxds instructionConvert-⬜ Open🟠 High-
#390Implement xvcvdpuxws instructionConvert-⬜ Open🟠 High-
#391Implement xvcvsxddp instructionConvert-⬜ Open🟠 High-
#392Implement xvcvuxddp instructionConvert-⬜ Open🟠 High-
#393Implement xvcvsxwdp instructionConvert-⬜ Open🟠 High-
#394Implement xvcvuxwdp instructionConvert-⬜ Open🟠 High-
#395Implement xvcvspsxds instructionConvert-⬜ Open🟠 High-
#396Implement xvcvspsxws instructionConvert-⬜ Open🟠 High-
#397Implement xvcvspuxds instructionConvert-⬜ Open🟠 High-
#398Implement xvcvspuxws instructionConvert-⬜ Open🟠 High-
#399Implement xvcvsxdsp instructionConvert-⬜ Open🟠 High-
#400Implement xvcvuxdsp instructionConvert-⬜ Open🟠 High-
#401Implement xvcvsxwsp instructionConvert-⬜ Open🟠 High-
#402Implement xvcvuxwsp instructionConvert-⬜ Open🟠 High-
#403Implement xvrdpi instruction--⬜ Open🟠 High-
#404Implement xvrdpic instruction--⬜ Open🟠 High-
#405Implement xvrdpim instruction--⬜ Open🟠 High-
#406Implement xvrdpip instruction--⬜ Open🟠 High-
#407Implement xvrdpiz instruction--⬜ Open🟠 High-
#408Implement xvrspi instruction--⬜ Open🟠 High-
#409Implement xvrspic instruction--⬜ Open🟠 High-
#410Implement xvrspim instruction--⬜ Open🟠 High-
#411Implement xvrspip instruction--⬜ Open🟠 High-
#412Implement xvrspiz instruction--⬜ Open🟠 High-
#413Implement xvabsdp instruction--⬜ Open🟠 High-
#414Implement xvnabsdp instruction--⬜ Open🟠 High-
#415Implement xvnegdp instruction--⬜ Open🟠 High-
#416Implement xvcpsgndp instruction--⬜ Open🟠 High-
#417Implement xvabssp instruction--⬜ Open🟠 High-
#418Implement xvnabssp instruction--⬜ Open🟠 High-
#419Implement xvnegsp instruction--⬜ Open🟠 High-
#420Implement xvcpsgnsp instruction--⬜ Open🟠 High-
#421Implement xvtdivdp instruction--⬜ Open🟠 High-
#422Implement xvtdivsp instruction--⬜ Open🟠 High-
#423Implement xvtsqrtdp instruction--⬜ Open🟠 High-
#424Implement xvtsqrtsp instruction--⬜ Open🟠 High-
#425Implement lxvd2x instructionLoadstore-⬜ Open🟠 High-
#426Implement lxvw4x instructionLoadstore-⬜ Open🟠 High-
#427Implement stxvd2x instructionLoadstore-⬜ Open🟠 High-
#428Implement stxvw4x instructionLoadstore-⬜ Open🟠 High-
#429Implement lxsdx instructionLoadstore-⬜ Open🟠 High-
#430Implement stxsdx instructionLoadstore-⬜ Open🟠 High-
#431Implement lxvdsx instructionLoadstore-⬜ Open🟠 High-
#432Implement lxsspx instructionLoadstore-⬜ Open🟠 High-
#433Implement stxsspx instructionLoadstore-⬜ Open🟠 High-
#434VMX/VSX exception handlingException-handling-⬜ Open🟠 High-
#435VMX/VSX context switchingContext-switch-⬜ Open🟠 High-
#436VMX/VSX unavailable interruptsInterrupt-⬜ Open🟠 High-
#437FP/VMX/VSX register coherencyRegister-coherency-⬜ Open🟠 High-
#438Unit tests for VMX instructionsTesting-⬜ Open🔴 Critical-
#439Unit tests for VSX instructionsTesting-⬜ Open🔴 Critical-
#440Comprehensive VMX/VSX test suiteIntegration-testing-⬜ Open🔴 Critical-
#441VMX/VSX performance benchmarkingPerformance-⬜ Open🟠 High-

Last updated: 2025-12-05 16:48:17