-
Notifications
You must be signed in to change notification settings - Fork 2.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
from_qasm_str
not importing Fswap
correctly
#13339
Comments
Huh, thanks for the report, this is definitely a weird one. Feels like the Rust and Python sides of the parser must be getting out-of-sync somehow, and I'm assuming that it's related to the legacy handling for instructions that the much older parser used to treat as "built in" without needing a definition. Here's a minimal reproducer: from qiskit import qasm2
from qiskit.circuit import library
custom = qasm2.CustomInstruction("whoops", 0, 1, library.XGate, builtin=True)
prog = """
OPENQASM 2.0;
gate whoops a { U(0, 0, 0) a; }
gate ignored a { U(pi, pi, pi) a; }
qreg q[1];
ignored q[0];
"""
qasm2.loads(prog, custom_instructions=[custom]).draw() The output circuit only calls for gate |
#13340 should get this fixed. |
Environment
What is happening?
When one creates a circuit with
qiskit.QuantumCircuit.from_qasm_str
an Fswap gate will sometimes be mapped to swap. This seems to only happen if there is a swap before the fswap in the qasm file.gives
But
gives
How can we reproduce the issue?
Run this code:
It outputs
What should happen?
I should output
Any suggestions?
No response
The text was updated successfully, but these errors were encountered: