Skip to content

qiskit.transpile with optimization_level=3 does not optimize away an identity operation like cp with phase 0 #13344

@dixr

Description

@dixr

Environment

  • Qiskit version: 1.2.4
  • Python version: 3.11.3
  • Operating system: Ubuntu Linux

What is happening?

Why does qiskit.transpile() function with optimization level 3 not remove a cp (controlled phase) gate when its parameter is 0? Since a cp(0) gate is equivalent to an identity operation, it should be optimized away.

How can we reproduce the issue?

import qiskit
import qiskit_aer
circuit = qiskit.QuantumCircuit(2)
circuit.cp(0, 1, 0)
circuit = qiskit.transpile(circuit, qiskit_aer.AerSimulator(), optimization_level=3)
circuit.data

Output:

[CircuitInstruction(operation=Instruction(name='cp', num_qubits=2, num_clbits=0, params=[0.0]), qubits=(Qubit(QuantumRegister(2, 'q'), 1), Qubit(QuantumRegister(2, 'q'), 0)), clbits=())]

What should happen?

The gate should be removed.

Any suggestions?

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions