Skip to content

✨ DD functionality construction / simulation for MLIR QCO programs #1913

Description

@simon1hofmann

Problem Statement

πŸ€– AI text below πŸ€–

Multi-controlled decomposition tests (#1810 ) verify correctness with the DD package via dd::buildFunctionality. That API currently takes qc::QuantumComputation, so tests translate a post-decomposition func.func into QuantumComputation with a local helper (funcOpToQuantumComputation in test_multi_controlled_decomposition.cpp).

That bridge is incomplete by design (only elementary ops after decomposition) and duplicates IR knowledge. Similar patterns appear elsewhere (e.g. QCO matrix tests that build a `QuantumComputation just to get a DD reference). As more MLIR/QCO passes need unitary checks, round-tripping through the classic IR becomes a recurring tax.

Proposed Solution

Extend the DD layer so a narrow class of MLIR/QCO programs can be consumed directly:

  • Port or wrap buildFunctionality (and later simulate) for static unitary QCO fragments (e.g. static qubits + elementary / controlled gates after decomposition).
  • Track SSA qubit values β†’ DD wire indices without going through QuantumComputation.

Metadata

Metadata

Assignees

Labels

DDAnything related to the DD packageMLIRAnything related to MLIRc++Anything related to C++ codeenhancementImprovement of existing feature

Fields

No fields configured for Feature.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions