fix issue/12311 with fractional gate in basis (backport #12511) #12813
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
This fixes an issue where an exception would be raised if transpiling a unitary gate to a backend with an RZZGate in its basis however transpiling with only
basis_gates
specified would transpile fine.fixes #12311
Details and comments
In this case, where RZZ is the only entangling gate in the basis, decomposition of a 2q unitary gate wouldn't get synthesized in the
UnitarySynthesis
pass but would instead be synthesized in theHighLevelSynthesis
pass because this would call the instruction's_define
method which callstwo_qubit_cnot_decompose
. A subsequentBasisTranslator
pass ultimately maps the cx to the rzz basis. I'm not sure whether this indirect path to unitary synthesis is intentional.This pr resolves the specific example posed in the issue.
This is an automatic backport of pull request #12511 done by [Mergify](https://mergify.com).