You can use Qiskit's StandardEquivalenceLibrary to get a list of gate decompositions.
StandardEquivalenceLibrary is an instance of EquivalenceLibrary class. It is used by Qiskit's during transpilation to translate the circuit gates to the target basis. Currently, it contains 80+ equivalences.
You can easily generate a nice image for these equivalences as follows:
from qiskit.circuit.library.standard_gates.equivalence_library import StandardEquivalenceLibrary
StandardEquivalenceLibrary.draw('equivalence_library.png')
If, however, you need a simple list, you can generate it using this code snippet:
keys = StandardEquivalenceLibrary.keys()
sorted_keys = { 1: [], 2: [], 3: [] }
for key in keys:
sorted_keys[key[1]].append(key)
sorted_keys[1].sort()
sorted_keys[2].sort()
sorted_keys[3].sort()
for num_qubits in sorted_keys:
for key in sorted_keys[num_qubits]:
print("{} ({} qubits)".format(key.name, key.num_qubits))
equivalences = StandardEquivalenceLibrary._get_equivalences(key)
for equivalence in equivalences:
display(equivalence.circuit.draw('mpl'))
Here is a part of the result:
