qe-compiler
qe-compiler copied to clipboard
Cannot process ASTTypeGateQOpNode statement node. (Same for ASTTypeCCXGateOpNode)
bin/qss-compiler --emit=mlir -I /.../mpqp/header_codes /.../src/adder_8.qasm.3.qasm
content of the qasm2 file:
OPENQASM 3.0; include "stdgates.inc";
qubit[24] qubits; cx qubits[3],qubits[2]; cx qubits[8],qubits[7]; cx qubits[14],qubits[13]; cx qubits[21],qubits[20]; cx qubits[3],qubits[4]; cx qubits[8],qubits[9]; cx qubits[14],qubits[15]; cx qubits[21],qubits[22]; ccx qubits[0],qubits[1],qubits[3]; ccx qubits[5],qubits[6],qubits[8]; ccx qubits[11],qubits[12],qubits[14]; ccx qubits[18],qubits[19],qubits[21]; ccx qubits[2],qubits[3],qubits[4]; ccx qubits[7],qubits[8],qubits[9]; ccx qubits[7],qubits[8],qubits[10]; ccx qubits[13],qubits[14],qubits[15]; ccx qubits[13],qubits[14],qubits[16]; ccx qubits[20],qubits[21],qubits[22]; ccx qubits[20],qubits[21],qubits[23]; cx qubits[6],qubits[5]; cx qubits[12],qubits[11]; cx qubits[19],qubits[18]; cx qubits[5],qubits[8]; cx qubits[11],qubits[14]; cx qubits[18],qubits[21]; ccx qubits[7],qubits[8],qubits[10]; ccx qubits[13],qubits[14],qubits[16]; ccx qubits[20],qubits[21],qubits[23]; ccx qubits[16],qubits[23],qubits[17]; ccx qubits[15],qubits[23],qubits[22]; ccx qubits[4],qubits[10],qubits[9]; ccx qubits[9],qubits[17],qubits[22]; ccx qubits[9],qubits[16],qubits[15]; ccx qubits[16],qubits[23],qubits[17]; ccx qubits[7],qubits[8],qubits[10]; ccx qubits[13],qubits[14],qubits[16]; ccx qubits[20],qubits[21],qubits[23]; cx qubits[5],qubits[8]; cx qubits[11],qubits[14]; cx qubits[18],qubits[21]; cx qubits[6],qubits[5]; cx qubits[12],qubits[11]; cx qubits[19],qubits[18]; ccx qubits[7],qubits[8],qubits[10]; ccx qubits[13],qubits[14],qubits[16]; ccx qubits[20],qubits[21],qubits[23]; ccx qubits[0],qubits[1],qubits[3]; ccx qubits[5],qubits[6],qubits[8]; ccx qubits[11],qubits[12],qubits[14]; ccx qubits[18],qubits[19],qubits[21]; cx qubits[3],qubits[2]; cx qubits[8],qubits[7]; cx qubits[14],qubits[13]; cx qubits[21],qubits[20]; cx qubits[6],qubits[5]; cx qubits[12],qubits[11]; cx qubits[19],qubits[18]; cx qubits[6],qubits[8]; cx qubits[12],qubits[14]; cx qubits[19],qubits[21]; cx qubits[4],qubits[6]; cx qubits[9],qubits[12]; cx qubits[15],qubits[19]; ccx qubits[0],qubits[1],qubits[3]; ccx qubits[5],qubits[6],qubits[8]; ccx qubits[11],qubits[12],qubits[14]; ccx qubits[18],qubits[19],qubits[21]; cx qubits[3],qubits[2]; cx qubits[8],qubits[7]; cx qubits[14],qubits[13]; cx qubits[21],qubits[20]; ccx qubits[0],qubits[1],qubits[3]; ccx qubits[5],qubits[6],qubits[8]; ccx qubits[11],qubits[12],qubits[14]; ccx qubits[18],qubits[19],qubits[21]; cx qubits[6],qubits[5]; cx qubits[12],qubits[11]; cx qubits[19],qubits[18]; cx qubits[4],qubits[6]; cx qubits[9],qubits[12]; cx qubits[15],qubits[19]; cx qubits[6],qubits[8]; cx qubits[12],qubits[14]; cx qubits[19],qubits[21]; cx qubits[1],qubits[0]; cx qubits[6],qubits[5]; cx qubits[12],qubits[11]; cx qubits[19],qubits[18]; x qubits[0]; x qubits[2]; x qubits[5]; x qubits[7]; x qubits[11]; x qubits[13]; cx qubits[3],qubits[2]; cx qubits[8],qubits[7]; cx qubits[14],qubits[13]; ccx qubits[0],qubits[1],qubits[3]; ccx qubits[5],qubits[6],qubits[8]; ccx qubits[11],qubits[12],qubits[14]; cx qubits[6],qubits[5]; cx qubits[12],qubits[11]; ccx qubits[7],qubits[8],qubits[10]; ccx qubits[13],qubits[14],qubits[16]; cx qubits[5],qubits[8]; cx qubits[11],qubits[14]; ccx qubits[7],qubits[8],qubits[10]; ccx qubits[13],qubits[14],qubits[16]; ccx qubits[9],qubits[16],qubits[15]; ccx qubits[4],qubits[10],qubits[9]; ccx qubits[7],qubits[8],qubits[10]; ccx qubits[13],qubits[14],qubits[16]; cx qubits[5],qubits[8]; cx qubits[11],qubits[14]; ccx qubits[7],qubits[8],qubits[10]; ccx qubits[13],qubits[14],qubits[16]; cx qubits[6],qubits[5]; cx qubits[12],qubits[11]; ccx qubits[7],qubits[8],qubits[9]; ccx qubits[13],qubits[14],qubits[15]; ccx qubits[2],qubits[3],qubits[4]; ccx qubits[0],qubits[1],qubits[3]; ccx qubits[5],qubits[6],qubits[8]; ccx qubits[11],qubits[12],qubits[14]; cx qubits[3],qubits[4]; cx qubits[8],qubits[9]; cx qubits[14],qubits[15]; cx qubits[3],qubits[2]; cx qubits[8],qubits[7]; cx qubits[14],qubits[13]; x qubits[0]; x qubits[2]; x qubits[5]; x qubits[7]; x qubits[11]; x qubits[13];
The compiler is currently designed for physical ISA circuits and has to be taught about which gates/qubits are available. It also does not perform qubit allocation and operates only on physical circuits.
See for example this program https://github.com/openqasm/qe-compiler/blob/main/test/Frontend/OpenQASM3/bell-v1.qasm