Conversions
Qiskit conversions
Installation
Install the qiskit extra:
pip install 'qbraid-qir[qiskit]'Requires Qiskit >= 2.0.
Example Usage
Convert a Qiskit QuantumCircuit to QIR:
Code
from qiskit import QuantumCircuit
from qbraid_qir import dumps
from qbraid_qir.qiskit import qiskit_to_qir
# create a test circuit
qc = QuantumCircuit(2, 2)
qc.h(0)
qc.cx(0, 1)
qc.measure([0, 1], [0, 1])
# convert to QIR
module = qiskit_to_qir(qc, name="bell")
# saves to .ll and .bc files in working directory
dumps(module)
print(module)
Output
; ModuleID = 'bell'
source_filename = "bell"
%Qubit = type opaque
%Result = type opaque
define void @main() #0 {
entry:
call void @__quantum__qis__h__body(%Qubit* inttoptr (i64 0 to %Qubit*))
call void @__quantum__qis__cnot__body(%Qubit* inttoptr (i64 0 to %Qubit*), %Qubit* inttoptr (i64 1 to %Qubit*))
call void @__quantum__qis__mz__body(%Qubit* inttoptr (i64 0 to %Qubit*), %Result* inttoptr (i64 0 to %Result*))
call void @__quantum__qis__mz__body(%Qubit* inttoptr (i64 1 to %Qubit*), %Result* inttoptr (i64 1 to %Result*))
ret void
}
declare void @__quantum__qis__h__body(%Qubit*)
declare void @__quantum__qis__cnot__body(%Qubit*, %Qubit*)
declare void @__quantum__qis__mz__body(%Qubit*, %Result* writeonly) #1
attributes #0 = { "entry_point" "output_labeling_schema" "qir_profiles"="custom" "required_num_qubits"="2" "required_num_results"="2" }
attributes #1 = { "irreversible" }
!llvm.module.flags = !{!0, !1, !2, !3}
!0 = !{i32 1, !"qir_major_version", i32 1}
!1 = !{i32 7, !"qir_minor_version", i32 0}
!2 = !{i32 1, !"dynamic_qubit_management", i1 false}
!3 = !{i32 1, !"dynamic_result_management", i1 false}Transpilation
If your circuit contains gates not directly supported by QIR, you can set transpile=True to automatically decompose them into the supported basis gate set before conversion:
module = qiskit_to_qir(qc, name="my-circuit", transpile=True)Supported Operations
| Category | Gates |
|---|---|
| Single-qubit | h, x, y, z, s, sdg, t, tdg, id, reset |
| Rotations | rx, ry, rz |
| Two-qubit | cx, cz, swap |
| Three-qubit | ccx |
| Measurement | measure |
| Other | barrier, delay |
Was this page helpful?
Thanks for your feedback.

