cuda-quantum
cuda-quantum copied to clipboard
Infinite loop when looping through kernel builder qubits
Required prerequisites
- [X] Consult the security policy. If reporting a security vulnerability, do not report the bug using this form. Use the process described in the policy to report the issue.
- [X] Make sure you've read the documentation. Your issue may be addressed there.
- [X] Search the issue tracker to verify that this hasn't already been reported. +1 or comment there if it has.
- [ ] If possible, make a PR with a failing test to give us a starting point to work on!
Describe the bug
The following will run an infinite loop:
import cudaq
kernel = cudaq.make_kernel()
qubits = kernel.qalloc(2)
for qubit in qubits:
print(qubit)
which prints
.
.
.
Value(%1060 = quake.extract_ref %0[%c1059_i64] : (!quake.veq<2>, i64) -> !quake.ref)
Value(%1061 = quake.extract_ref %0[%c1060_i64] : (!quake.veq<2>, i64) -> !quake.ref)
Value(%1062 = quake.extract_ref %0[%c1061_i64] : (!quake.veq<2>, i64) -> !quake.ref)
Value(%1063 = quake.extract_ref %0[%c1062_i64] : (!quake.veq<2>, i64) -> !quake.ref)
Value(%1064 = quake.extract_ref %0[%c1063_i64] : (!quake.veq<2>, i64) -> !quake.ref)
Value(%1065 = quake.extract_ref %0[%c1064_i64] : (!quake.veq<2>, i64) -> !quake.ref)
Value(%1066 = quake.extract_ref %0[%c1065_i64] : (!quake.veq<2>, i64) -> !quake.ref)
Value(%1067 = quake.extract_ref %0[%c1066_i64] : (!quake.veq<2>, i64) -> !quake.ref)
Value(%1068 = quake.extract_ref %0[%c1067_i64] : (!quake.veq<2>, i64) -> !quake.ref)
Value(%1069 = quake.extract_ref %0[%c1068_i64] : (!quake.veq<2>, i64) -> !quake.ref)
Value(%1070 = quake.extract_ref %0[%c1069_i64] : (!quake.veq<2>, i64) -> !quake.ref)
Value(%1071 = quake.extract_ref %0[%c1070_i64] : (!quake.veq<2>, i64) -> !quake.ref)
Value(%1072 = quake.extract_ref %0[%c1071_i64] : (!quake.veq<2>, i64) -> !quake.ref)
Value(%1073 = quake.extract_ref %0[%c1072_i64] : (!quake.veq<2>, i64) -> !quake.ref)
.
.
.
Steps to reproduce the bug
See attached code
Expected behavior
We expect an error or for the loop to terminate properly.
Is this a regression? If it is, put the last known working version (or commit) here.
Not a regression
Environment
- CUDA Quantum version:
- Python version:
- C++ compiler:
- Operating system:
All latest
Suggestions
No response