Repository: Qiskit/qiskit

Issue:
Clifford transpilation doesn't support basis gates with "sx" instead of "h", or "ecr" instead of "cx"
### Environment

- **Qiskit Terra version**:  0.23.3
- **Python version**: 3.9
- **Operating system**: MacOS


### What is happening?

Transpiling a Clifford circuit to a clifford basis containing "sx", but not "h" raises a Transpiler error, similar for transpiling with "ecr" instead of "cx" for the two qubit Clifford gate.

### How can we reproduce the issue?

```python
from qiskit import QuantumCircuit, transpile
from qiskit.quantum_info import random_clifford

nq = 6
cliff = random_clifford(nq, seed=123)
qc = QuantumCircuit(nq)
qc.append(cliff, range(nq))
```

Running
```python
tqc = transpile(qc, basis_gates=["cx", "s", "h"])
``` 
is ok, but running 
```python
tqc = transpile(qc, basis_gates=["cx", "s", "sx"])
```
raises 
```
TranspilerError: "Unable to map source basis {('s', 1), ('cx', 2), ('h', 1), ('y', 1), ('swap', 2), ('x', 1)} to target basis {'barrier', 'delay', 's', 'cx', 'snapshot', 'sx', 'reset', 'measure'} over library <qiskit.circuit.equivalence.EquivalenceLibrary object at 0x11760d910>."
```
```python
tqc = transpile(qc, basis_gates=["ecr", "s", "h"])
tqc = transpile(qc, basis_gates=["ecr", "s", "sx"])
```
also raise similar exceptions.

### What should happen?

SX should be a valid basis gates for clifford synthesis since it is equivalent to Sdg.H.Sdg. Similar for ECR which can be written as CX + 1 qubit cliffords

### Any suggestions?

I'm not sure how clifford synthesis is implemented these days, but it should be updated to support "sx" and "ecr" since they are our native device gate.

My motivation for this is I would like to mimic device transpilation on a clifford simulator by transpiling to a Clifford-equivalent ECR/CX + RZ SX basis, where all the RZ gates would be replaced by either I, Z, Sdg, or S for clifford circuits.


Discussion:
Sounds like at a minimum we need a bunch more equivalence-library rules, and longer term, we need to expand the Clifford-specific synthesis routines (@ShellyGarion probably knows the state of that work).

As an immediate workaround, you can do this at the start of your Python session:
```python
import math
from qiskit.circuit.equivalence_library import SessionEquivalenceLibrary
from qiskit.circuit import library as lib, QuantumCircuit

cx_to_ecr = QuantumCircuit(2, global_phase=math.pi / 4)
cx_to_ecr.sxdg(1)
cx_to_ecr.sdg(0)
cx_to_ecr.ecr(0, 1)
cx_to_ecr.x(0)
SessionEquivalenceLibrary.add_equivalence(lib.CXGate(), cx_to_ecr)

h_to_sx = QuantumCircuit(1, global_phase=-math.pi/4)
h_to_sx.s(0)
h_to_sx.sx(0)
h_to_sx.s(0)
SessionEquivalenceLibrary.add_equivalence(lib.HGate(), h_to_sx)
```
and then all of your lines should work.  They won't be the most _efficient_ synthesis (almost certainly), but they'll at least compile.
(It's also probably worth checking that I got those equivalences correct lol)
> They won't be the most _efficient_ synthesis

```python
print(transpile(qc, basis_gates=["ecr", "s", "sx"]))
```
```text
global phase: 0
     ┌───┐┌───┐ ┌────┐┌───┐┌───┐┌───┐ ┌────┐┌───┐ ┌───┐       ┌──────┐┌───┐ ┌───┐  ┌───┐                                                                                                                 ┌──────┐┌───┐ ┌────┐┌───┐ ┌───┐  ┌───┐┌───┐ ┌────┐┌───┐ ┌───┐┌───┐┌────┐┌───┐┌───┐┌───┐┌───┐┌──────┐┌───┐┌────┐┌───┐ ┌───┐┌───┐┌───┐┌────┐┌───┐┌───┐┌───┐┌────┐»
q_0: ┤ S ├┤ S ├─┤ √X ├┤ S ├┤ S ├┤ S ├─┤ √X ├┤ S ├─┤ S ├───────┤1     ├┤ S ├─┤ S ├──┤ S ├─────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤0     ├┤ S ├─┤ √X ├┤ S ├─┤ S ├──┤ S ├┤ S ├─┤ √X ├┤ S ├─┤ S ├┤ S ├┤ √X ├┤ S ├┤ S ├┤ S ├┤ S ├┤0     ├┤ S ├┤ √X ├┤ S ├─┤ S ├┤ S ├┤ S ├┤ √X ├┤ S ├┤ S ├┤ S ├┤ √X ├»
     ├───┤├───┴┐├───┬┘├───┤├───┤├───┴┐├───┬┘├───┤ └───┘       │      │└───┘ └───┘ ┌┴───┴─┐┌───┐┌────┐┌───┐ ┌───┐ ┌───┐┌───┐                                      ┌──────┐┌───┐┌────┐┌───┐ ┌───┐┌───┐┌───┐│      │├───┴┐├───┬┘├───┤ ├───┴┐ ├───┤├───┤ ├───┬┘├───┤ └───┘└───┘└────┘└───┘└───┘└───┘└───┘│      │└───┘└────┘└───┘ └───┘└───┘└───┘└────┘└───┘└───┘└───┘└────┘»
q_1: ┤ S ├┤ √X ├┤ S ├─┤ S ├┤ S ├┤ √X ├┤ S ├─┤ S ├─────────────┤      ├────────────┤1     ├┤ S ├┤ √X ├┤ S ├─┤ S ├─┤ S ├┤ S ├──────────────────────────────────────┤0     ├┤ S ├┤ √X ├┤ S ├─┤ S ├┤ S ├┤ S ├┤  Ecr ├┤ √X ├┤ S ├─┤ S ├─┤ √X ├─┤ S ├┤ S ├─┤ S ├─┤ S ├─────────────────────────────────────┤      ├───────────────────────────────────────────────────────────»
     ├───┤├────┤├───┤ ├───┤├───┤├────┤├───┤ ├───┤┌──────┐┌───┐│      │┌───┐ ┌───┐ │  Ecr │├───┤├────┤├───┤ ├───┤ ├───┤├───┤┌────┐┌───┐ ┌───┐┌───┐┌────┐┌───┐┌───┐│  Ecr │├───┤├───┬┘├───┴┐├───┤├───┤└───┘│      │├───┬┘├───┤ ├───┤┌┴────┴┐├───┤├───┴┐├───┤ ├───┤ ┌───┐┌───┐┌────┐┌───┐               │  Ecr │                                                           »
q_2: ┤ S ├┤ √X ├┤ S ├─┤ S ├┤ S ├┤ √X ├┤ S ├─┤ S ├┤1     ├┤ S ├┤      ├┤ S ├─┤ S ├─┤0     ├┤ S ├┤ √X ├┤ S ├─┤ S ├─┤ S ├┤ S ├┤ √X ├┤ S ├─┤ S ├┤ S ├┤ √X ├┤ S ├┤ S ├┤1     ├┤ S ├┤ S ├─┤ √X ├┤ S ├┤ S ├─────┤1     ├┤ S ├─┤ S ├─┤ S ├┤0     ├┤ S ├┤ √X ├┤ S ├─┤ S ├─┤ S ├┤ S ├┤ √X ├┤ S ├───────────────┤      ├───────────────────────────────────────────────────────────»
     ├───┤├───┬┘├───┴┐├───┤├───┤├───┬┘├───┤ └───┘│  Ecr │├───┤│  Ecr │├───┴┐├───┤ └┬───┬─┘├───┤├───┬┘├───┴┐├───┤ ├───┤├───┤├────┤├───┤ ├───┤└───┘└────┘└───┘└───┘└──────┘└───┘└───┘ └────┘└───┘└───┘     └──────┘└───┘ └───┘ └───┘│      │└───┘└────┘└───┘ └───┘ └───┘└───┘└────┘└───┘               │      │┌───┐┌───┐ ┌────┐┌───┐┌───┐┌───┐┌────┐┌───┐┌───┐           »
q_3: ┤ S ├┤ S ├─┤ √X ├┤ S ├┤ S ├┤ S ├─┤ S ├──────┤0     ├┤ S ├┤      ├┤ √X ├┤ S ├──┤ S ├──┤ S ├┤ S ├─┤ √X ├┤ S ├─┤ S ├┤ S ├┤ √X ├┤ S ├─┤ S ├──────────────────────────────────────────────────────────────────────────────────────┤      ├───────────────────────────────────────────────────────────┤1     ├┤ S ├┤ S ├─┤ √X ├┤ S ├┤ S ├┤ S ├┤ √X ├┤ S ├┤ S ├───────────»
     ├───┤├───┴┐├───┬┘├───┤├───┤├───┤ └───┘      └──────┘└───┘│      │└────┘└───┘  └───┘  └───┘└───┘ └────┘└───┘ └───┘└───┘└────┘└───┘ └───┘                                                                                      │  Ecr │                                                           └──────┘└───┘└───┘ └────┘└───┘└───┘└───┘└────┘└───┘└───┘           »
q_4: ┤ S ├┤ √X ├┤ S ├─┤ S ├┤ S ├┤ S ├─────────────────────────┤      ├────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤      ├──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────»
     ├───┤├───┬┘├───┤ └───┘└───┘└───┘                         │      │┌───┐ ┌────┐ ┌───┐  ┌───┐┌───┐ ┌───┐ ┌────┐┌───┐┌───┐┌───┐ ┌────┐┌───┐┌───┐                                                                                 │      │┌───┐┌───┐ ┌───┐ ┌────┐┌───┐┌───┐                                                                                             »
q_5: ┤ S ├┤ S ├─┤ S ├─────────────────────────────────────────┤0     ├┤ S ├─┤ √X ├─┤ S ├──┤ S ├┤ S ├─┤ S ├─┤ √X ├┤ S ├┤ S ├┤ S ├─┤ √X ├┤ S ├┤ S ├─────────────────────────────────────────────────────────────────────────────────┤1     ├┤ S ├┤ S ├─┤ S ├─┤ √X ├┤ S ├┤ S ├─────────────────────────────────────────────────────────────────────────────────────────────»
     └───┘└───┘ └───┘                                         └──────┘└───┘ └────┘ └───┘  └───┘└───┘ └───┘ └────┘└───┘└───┘└───┘ └────┘└───┘└───┘                                                                                 └──────┘└───┘└───┘ └───┘ └────┘└───┘└───┘                                                                                             »
«     ┌───┐┌───┐┌──────┐┌───┐┌───┐ ┌────┐┌───┐┌───┐     ┌──────┐┌───┐ ┌───┐ ┌───┐     ┌──────┐┌───┐ ┌────┐┌───┐ ┌───┐┌───┐ ┌───┐┌────┐┌───┐┌───┐┌───┐┌────┐ ┌───┐  ┌───┐      ┌──────┐┌───┐┌────┐┌───┐┌───┐┌───┐ ┌───┐┌────┐┌───┐                                                                                                                                      »
«q_0: ┤ S ├┤ S ├┤1     ├┤ S ├┤ S ├─┤ √X ├┤ S ├┤ S ├─────┤1     ├┤ S ├─┤ S ├─┤ S ├─────┤0     ├┤ S ├─┤ √X ├┤ S ├─┤ S ├┤ S ├─┤ S ├┤ √X ├┤ S ├┤ S ├┤ S ├┤ √X ├─┤ S ├──┤ S ├──────┤1     ├┤ S ├┤ √X ├┤ S ├┤ S ├┤ S ├─┤ S ├┤ √X ├┤ S ├──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────»
«     └───┘└───┘│  Ecr │├───┤├───┴┐├───┬┘├───┤├───┤┌───┐│      │├───┴┐├───┤ ├───┤┌───┐│      │├───┴┐├───┬┘├───┤ ├───┤├───┴┐├───┤├───┬┘└───┘└───┘└───┘└────┘ └───┘  └───┘      │      │└───┘└────┘└───┘└───┘└───┘ └───┘└────┘└───┘                                ┌──────┐┌───┐┌───┐ ┌────┐┌───┐┌───┐┌──────┐┌───┐ ┌───┐ ┌───┐┌──────┐┌───┐ ┌────┐┌───┐┌───┐ ┌───┐┌───┐ »
«q_1: ──────────┤0     ├┤ S ├┤ √X ├┤ S ├─┤ S ├┤ S ├┤ S ├┤      ├┤ √X ├┤ S ├─┤ S ├┤ S ├┤      ├┤ √X ├┤ S ├─┤ S ├─┤ S ├┤ √X ├┤ S ├┤ S ├─────────────────────────────────────────┤      ├───────────────────────────────────────────────────────────────────────────┤1     ├┤ S ├┤ S ├─┤ √X ├┤ S ├┤ S ├┤1     ├┤ S ├─┤ S ├─┤ S ├┤0     ├┤ S ├─┤ √X ├┤ S ├┤ S ├─┤ S ├┤ S ├─»
«               └──────┘└───┘└────┘└───┘ └───┘└───┘└───┘│      │└────┘└───┘ └───┘└───┘│      │└────┘└───┘ └───┘ └───┘└────┘└───┘└───┘                                         │      │                                                                           │      │└───┘└───┘ └────┘└───┘└───┘│      │└───┘ └───┘ └───┘│      │└───┘ └────┘└───┘└───┘ └───┘└───┘ »
«q_2: ──────────────────────────────────────────────────┤  Ecr ├──────────────────────┤      ├────────────────────────────────────────────────────────────────────────────────┤      ├───────────────────────────────────────────────────────────────────────────┤      ├───────────────────────────┤  Ecr ├─────────────────┤      ├──────────────────────────────────»
«                                                       │      │                      │  Ecr │                                                             ┌──────┐┌───┐┌───┐ │  Ecr │┌───┐                                                                      │      │                           │      │┌───┐ ┌────┐┌───┐│  Ecr │┌───┐ ┌───┐ ┌───┐┌────┐┌───┐┌───┐ »
«q_3: ──────────────────────────────────────────────────┤      ├──────────────────────┤      ├─────────────────────────────────────────────────────────────┤1     ├┤ S ├┤ S ├─┤      ├┤ S ├──────────────────────────────────────────────────────────────────────┤  Ecr ├───────────────────────────┤0     ├┤ S ├─┤ √X ├┤ S ├┤      ├┤ S ├─┤ S ├─┤ S ├┤ √X ├┤ S ├┤ S ├─»
«                                                       │      │┌───┐ ┌────┐┌───┐┌───┐│      │┌───┐ ┌───┐ ┌────┐┌───┐┌───┐ ┌───┐┌────┐┌───┐┌───┐┌───┐┌───┐ │  Ecr │├───┤├───┴┐│      │├───┤┌───┐ ┌───┐┌───┐┌────┐┌───┐┌───┐ ┌───┐┌────┐┌───┐ ┌───┐               │      │                           └──────┘└───┘ └────┘└───┘│      │├───┤ ├───┴┐├───┤├───┬┘├───┤├───┴┐»
«q_4: ──────────────────────────────────────────────────┤0     ├┤ S ├─┤ √X ├┤ S ├┤ S ├┤      ├┤ S ├─┤ S ├─┤ √X ├┤ S ├┤ S ├─┤ S ├┤ √X ├┤ S ├┤ S ├┤ S ├┤ S ├─┤0     ├┤ S ├┤ √X ├┤      ├┤ S ├┤ S ├─┤ S ├┤ S ├┤ √X ├┤ S ├┤ S ├─┤ S ├┤ √X ├┤ S ├─┤ S ├───────────────┤      ├────────────────────────────────────────────────────┤1     ├┤ S ├─┤ √X ├┤ S ├┤ S ├─┤ S ├┤ √X ├»
«                                                       └──────┘└───┘ └────┘└───┘└───┘│      │├───┤ ├───┴┐├───┬┘├───┤├───┤ ├───┤└────┘└───┘└───┘└───┘└───┘ └──────┘└───┘└────┘│      │├───┤├───┴┐├───┤├───┤├───┬┘├───┤├───┴┐├───┤├───┬┘├───┴┐├───┤┌───┐┌───┐┌───┐│      │┌───┐┌────┐┌───┐ ┌───┐┌───┐ ┌───┐  ┌────┐┌───┐ ┌───┐└┬───┬─┘├───┴┐├───┬┘├───┤├───┤ ├───┤└────┘»
«q_5: ────────────────────────────────────────────────────────────────────────────────┤1     ├┤ S ├─┤ √X ├┤ S ├─┤ S ├┤ S ├─┤ S ├──────────────────────────────────────────────┤0     ├┤ S ├┤ √X ├┤ S ├┤ S ├┤ S ├─┤ S ├┤ √X ├┤ S ├┤ S ├─┤ √X ├┤ S ├┤ S ├┤ S ├┤ S ├┤0     ├┤ S ├┤ √X ├┤ S ├─┤ S ├┤ S ├─┤ S ├──┤ √X ├┤ S ├─┤ S ├─┤ S ├──┤ √X ├┤ S ├─┤ S ├┤ S ├─┤ S ├──────»
«                                                                                     └──────┘└───┘ └────┘└───┘ └───┘└───┘ └───┘                                              └──────┘└───┘└────┘└───┘└───┘└───┘ └───┘└────┘└───┘└───┘ └────┘└───┘└───┘└───┘└───┘└──────┘└───┘└────┘└───┘ └───┘└───┘ └───┘  └────┘└───┘ └───┘ └───┘  └────┘└───┘ └───┘└───┘ └───┘      »
«                                                                                                                                                                                                                                                                                                                                                                       »
«q_0: ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────»
«     ┌────┐┌───┐  ┌───┐  ┌───┐┌───┐ ┌────┐┌───┐ ┌───┐┌───┐ ┌───┐  ┌────┐┌───┐                                                                                                                                                                                                                                                                                          »
«q_1: ┤ √X ├┤ S ├──┤ S ├──┤ S ├┤ S ├─┤ √X ├┤ S ├─┤ S ├┤ S ├─┤ S ├──┤ √X ├┤ S ├──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────»
«     └────┘└───┘  └───┘  └───┘└───┘ └────┘└───┘ └───┘└───┘ └───┘  └────┘└───┘                                                                                                                                                                                                                                                                                          »
«q_2: ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────»
«     ┌───┐ ┌────┐ ┌───┐  ┌───┐┌───┐ ┌───┐ ┌────┐┌───┐┌───┐┌──────┐┌───┐ ┌───┐ ┌───┐                           ┌──────┐┌───┐┌────┐┌───┐ ┌───┐┌───┐┌───┐┌────┐┌───┐                                                                                                                                                                                                      »
«q_3: ┤ S ├─┤ √X ├─┤ S ├──┤ S ├┤ S ├─┤ S ├─┤ √X ├┤ S ├┤ S ├┤1     ├┤ S ├─┤ S ├─┤ S ├───────────────────────────┤0     ├┤ S ├┤ √X ├┤ S ├─┤ S ├┤ S ├┤ S ├┤ √X ├┤ S ├──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────»
«     ├───┤ ├───┬┘┌┴───┴─┐├───┤├───┤ ├───┤ └────┘└───┘└───┘│  Ecr │├───┤ ├───┴┐├───┤┌───┐ ┌───┐┌───┐┌────┐┌───┐│      │├───┤├───┬┘├───┴┐├───┤├───┤├───┤├───┬┘├───┴┐┌───┐┌───┐┌──────┐┌───┐┌───┐ ┌───┐                                                    ┌──────┐┌───┐┌────┐┌───┐┌───┐┌───┐┌───┐┌────┐┌───┐┌───┐┌───┐┌────┐┌───┐┌───┐┌──────┐┌───┐┌───┐ ┌────┐┌───┐┌───┐»
«q_4: ┤ S ├─┤ S ├─┤1     ├┤ S ├┤ S ├─┤ S ├─────────────────┤0     ├┤ S ├─┤ √X ├┤ S ├┤ S ├─┤ S ├┤ S ├┤ √X ├┤ S ├┤  Ecr ├┤ S ├┤ S ├─┤ √X ├┤ S ├┤ S ├┤ S ├┤ S ├─┤ √X ├┤ S ├┤ S ├┤1     ├┤ S ├┤ S ├─┤ S ├────────────────────────────────────────────────────┤0     ├┤ S ├┤ √X ├┤ S ├┤ S ├┤ S ├┤ S ├┤ √X ├┤ S ├┤ S ├┤ S ├┤ √X ├┤ S ├┤ S ├┤1     ├┤ S ├┤ S ├─┤ √X ├┤ S ├┤ S ├»
«     └───┘ └───┘ │  Ecr │├───┤├───┴┐├───┤ ┌───┐ ┌───┐┌───┐└┬────┬┘├───┤ ├───┬┘├───┤├───┴┐├───┤├───┤└────┘└───┘│      │├───┤├───┤ ├───┬┘├───┤└───┘└───┘└───┘ └────┘└───┘└───┘│  Ecr │├───┤├───┴┐├───┤┌───┐┌───┐┌───┐┌────┐┌───┐┌───┐┌───┐┌────┐┌───┐┌───┐│  Ecr │├───┤├───┬┘├───┤└───┘└───┘└───┘└────┘└───┘└───┘└───┘└────┘└───┘└───┘│  Ecr │├───┤├───┴┐├───┬┘├───┤├───┤»
«q_5: ────────────┤0     ├┤ S ├┤ √X ├┤ S ├─┤ S ├─┤ S ├┤ S ├─┤ √X ├─┤ S ├─┤ S ├─┤ S ├┤ √X ├┤ S ├┤ S ├───────────┤1     ├┤ S ├┤ S ├─┤ S ├─┤ S ├────────────────────────────────┤0     ├┤ S ├┤ √X ├┤ S ├┤ S ├┤ S ├┤ S ├┤ √X ├┤ S ├┤ S ├┤ S ├┤ √X ├┤ S ├┤ S ├┤1     ├┤ S ├┤ S ├─┤ S ├────────────────────────────────────────────────────┤0     ├┤ S ├┤ √X ├┤ S ├─┤ S ├┤ S ├»
«                 └──────┘└───┘└────┘└───┘ └───┘ └───┘└───┘ └────┘ └───┘ └───┘ └───┘└────┘└───┘└───┘           └──────┘└───┘└───┘ └───┘ └───┘                                └──────┘└───┘└────┘└───┘└───┘└───┘└───┘└────┘└───┘└───┘└───┘└────┘└───┘└───┘└──────┘└───┘└───┘ └───┘                                                    └──────┘└───┘└────┘└───┘ └───┘└───┘»
«
«q_0: ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
«
«q_1: ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
«
«q_2: ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
«
«q_3: ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
«                                    ┌──────┐┌───┐┌────┐┌───┐
«q_4: ───────────────────────────────┤1     ├┤ S ├┤ √X ├┤ S ├────────────────────────────────────────────────────────────────────
«     ┌───┐┌────┐┌───┐┌───┐┌───┐┌───┐│  Ecr │├───┤├────┤├───┤┌───┐┌───┐┌───┐┌────┐┌───┐┌───┐┌────┐┌───┐┌───┐┌───┐┌───┐┌────┐┌───┐
«q_5: ┤ S ├┤ √X ├┤ S ├┤ S ├┤ S ├┤ S ├┤0     ├┤ S ├┤ √X ├┤ S ├┤ S ├┤ S ├┤ S ├┤ √X ├┤ S ├┤ S ├┤ √X ├┤ S ├┤ S ├┤ S ├┤ S ├┤ √X ├┤ S ├
«     └───┘└────┘└───┘└───┘└───┘└───┘└──────┘└───┘└────┘└───┘└───┘└───┘└───┘└────┘└───┘└───┘└────┘└───┘└───┘└───┘└───┘└────┘└───┘
```

looool
@chriseclectic - do you allow only s and sx as basis gates? or also other gates, e.g. sdg, sxdg, x, z, y?
@ShellyGarion it should be up to the user, `"sx", "s"` would be minimal, but they could include other clifford basis gates for efficiency in synthesis if you didnt want long circuits like @jakelishman's example with the basis transpilator without optimization. 

Essentially any spanning set of our standard Clifford gates should work (i think minimal ones would all have 3 gates from `ecr/cx/cz/cy` + `h/sx/sxdg` + `s/sdg`).

For example I might use `["ecr", "sx", "s", "sdg", "z", "id"]` if I wanted to have a circuit that has same shape as transpiling to `["ecr", "rz", "sx"]` basis would, but then replaces each rz with a clifford for the 4 valid clifford angles (mod 2pi).

Resolving patch:
diff --git a/qiskit/circuit/library/standard_gates/equivalence_library.py b/qiskit/circuit/library/standard_gates/equivalence_library.py
--- a/qiskit/circuit/library/standard_gates/equivalence_library.py
+++ b/qiskit/circuit/library/standard_gates/equivalence_library.py
@@ -644,6 +644,25 @@
     def_ecr_cliff.append(inst, qargs, cargs)
 _sel.add_equivalence(ECRGate(), def_ecr_cliff)
 
+# CXGate decomposed using an ECRGate and Clifford 1-qubit gates
+#                global phase: π/4
+# q_0: ──■──          ┌─────┐ ┌──────┐┌───┐
+#      ┌─┴─┐  ≡  q_0: ┤ Sdg ├─┤0     ├┤ X ├
+# q_1: ┤ X ├          ├─────┴┐│  Ecr │└───┘
+#      └───┘     q_1: ┤ √Xdg ├┤1     ├─────
+#                     └──────┘└──────┘
+
+q = QuantumRegister(2, "q")
+def_ecr_to_cx_cliff = QuantumCircuit(q, global_phase=pi / 4)
+for inst, qargs, cargs in [
+    (SdgGate(), [q[0]], []),
+    (SXdgGate(), [q[1]], []),
+    (ECRGate(), [q[0], q[1]], []),
+    (XGate(), [q[0]], []),
+]:
+    def_ecr_to_cx_cliff.append(inst, qargs, cargs)
+_sel.add_equivalence(CXGate(), def_ecr_to_cx_cliff)
+
 # SGate
 #
 #    ┌───┐        ┌─────────┐
@@ -781,6 +800,17 @@
     def_sx.append(inst, qargs, cargs)
 _sel.add_equivalence(SXGate(), def_sx)
 
+# HGate decomposed into SXGate and SGate
+#              global phase: -π/4
+#    ┌───┐        ┌───┐┌────┐┌───┐
+# q: ┤ H ├  ≡  q: ┤ S ├┤ √X ├┤ S ├
+#    └───┘        └───┘└────┘└───┘
+q = QuantumRegister(1, "q")
+def_h_to_sx = QuantumCircuit(q, global_phase=-pi / 4)
+for inst, qargs, cargs in [(SGate(), [q[0]], []), (SXGate(), [q[0]], []), (SGate(), [q[0]], [])]:
+    def_h_to_sx.append(inst, qargs, cargs)
+_sel.add_equivalence(HGate(), def_h_to_sx)
+
 # SXGate
 #               global phase: π/4
 #    ┌────┐        ┌─────────┐
@@ -802,6 +832,21 @@
     def_sxdg.append(inst, qargs, cargs)
 _sel.add_equivalence(SXdgGate(), def_sxdg)
 
+# HGate decomposed into SXdgGate and SdgGate
+#              global phase: π/4
+#    ┌───┐        ┌─────┐┌──────┐┌─────┐
+# q: ┤ H ├  ≡  q: ┤ Sdg ├┤ √Xdg ├┤ Sdg ├
+#    └───┘        └─────┘└──────┘└─────┘
+q = QuantumRegister(1, "q")
+def_h_to_sxdg = QuantumCircuit(q, global_phase=pi / 4)
+for inst, qargs, cargs in [
+    (SdgGate(), [q[0]], []),
+    (SXdgGate(), [q[0]], []),
+    (SdgGate(), [q[0]], []),
+]:
+    def_h_to_sxdg.append(inst, qargs, cargs)
+_sel.add_equivalence(HGate(), def_h_to_sxdg)
+
 # SXdgGate
 #                 global phase: 7π/4
 #    ┌──────┐        ┌──────────┐


Test patch:
diff --git a/test/python/transpiler/test_basis_translator.py b/test/python/transpiler/test_basis_translator.py
--- a/test/python/transpiler/test_basis_translator.py
+++ b/test/python/transpiler/test_basis_translator.py
@@ -897,18 +897,19 @@ def test_cx_bell_to_ecr(self):
         in_dag = circuit_to_dag(bell)
         out_dag = BasisTranslator(std_eqlib, ["ecr", "u"]).run(in_dag)
 
-        #         ┌────────────┐  ┌─────────────┐┌──────────┐┌──────┐
-        # q_0: ───┤ U(π/2,0,π) ├──┤ U(0,0,-π/2) ├┤ U(π,0,0) ├┤0     ├
-        #      ┌──┴────────────┴─┐└─────────────┘└──────────┘│  Ecr │
-        # q_1: ┤ U(π/2,-π/2,π/2) ├───────────────────────────┤1     ├
-        #      └─────────────────┘                           └──────┘
+        #         ┌────────────┐   ┌─────────────┐┌──────┐┌──────────┐
+        # q_0: ───┤ U(π/2,0,π) ├───┤ U(0,0,-π/2) ├┤0     ├┤ U(π,0,π) ├
+        #      ┌──┴────────────┴──┐└─────────────┘│  Ecr │└──────────┘
+        # q_1: ┤ U(-π/2,-π/2,π/2) ├───────────────┤1     ├────────────
+        #      └──────────────────┘               └──────┘
+
         qr = QuantumRegister(2, "q")
         expected = QuantumCircuit(2)
         expected.u(pi / 2, 0, pi, qr[0])
         expected.u(0, 0, -pi / 2, qr[0])
-        expected.u(pi, 0, 0, qr[0])
-        expected.u(pi / 2, -pi / 2, pi / 2, qr[1])
+        expected.u(-pi / 2, -pi / 2, pi / 2, qr[1])
         expected.ecr(0, 1)
+        expected.u(pi, 0, pi, qr[0])
         expected_dag = circuit_to_dag(expected)
 
         self.assertEqual(out_dag, expected_dag)