Skip to content

Commit 64c6d60

Browse files
committed
python kernel and mlir tests pass
Signed-off-by: Bettina Heim <[email protected]>
1 parent 2a0bb39 commit 64c6d60

File tree

2 files changed

+7
-22
lines changed

2 files changed

+7
-22
lines changed

python/cudaq/kernel/ast_bridge.py

Lines changed: 3 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -3185,26 +3185,11 @@ def conversion(idx, structItem):
31853185
return
31863186

31873187
if node.func.attr == 'to_integer':
3188-
# FIXME: UPDATE THIS
3189-
boolVec = self.popValue()
3190-
boolVec = self.ifPointerThenLoad(boolVec)
3191-
if not cc.StdvecType.isinstance(boolVec.type):
3192-
self.emitFatalError(
3193-
"to_integer expects a vector of booleans. Got type {}"
3194-
.format(boolVec.type), node)
3195-
elemTy = cc.StdvecType.getElementType(boolVec.type)
3196-
if elemTy != self.getIntegerType(1):
3197-
self.emitFatalError(
3198-
"to_integer expects a vector of booleans. Got type {}"
3199-
.format(boolVec.type), node)
3188+
boolVec = self.__groupValues(node.args, [1])
3189+
args = convertArguments([cc.StdvecType.get(self.getIntegerType(1))], [boolVec])
32003190
cudaqConvertToInteger = "__nvqpp_cudaqConvertToInteger"
3201-
# Load the intrinsic
32023191
load_intrinsic(self.module, cudaqConvertToInteger)
3203-
# Signature:
3204-
# `func.func private @__nvqpp_cudaqConvertToInteger(%arg : !cc.stdvec<i1>) -> i64`
3205-
resultTy = self.getIntegerType(64)
3206-
result = func.CallOp([resultTy], cudaqConvertToInteger,
3207-
[boolVec]).result
3192+
result = func.CallOp([self.getIntegerType(64)], cudaqConvertToInteger, args).result
32083193
self.pushValue(result)
32093194
return
32103195

python/tests/kernel/test_run_kernel.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -308,7 +308,7 @@ def incrementer(i: int) -> int:
308308

309309
@cudaq.kernel
310310
def kernel_with_list_arg(arg: list[int]) -> list[int]:
311-
result = [v for v in arg]
311+
result = arg.copy()
312312
for i in result:
313313
incrementer(i)
314314
return result
@@ -559,19 +559,19 @@ def test_return_list_large_size():
559559
@cudaq.kernel
560560
def kernel_with_dynamic_int_array_input(n: int, t: list[int]) -> list[int]:
561561
qubits = cudaq.qvector(n)
562-
return t
562+
return t.copy()
563563

564564
@cudaq.kernel
565565
def kernel_with_dynamic_float_array_input(n: int,
566566
t: list[float]) -> list[float]:
567567
qubits = cudaq.qvector(n)
568-
return t
568+
return t.copy()
569569

570570
@cudaq.kernel
571571
def kernel_with_dynamic_bool_array_input(n: int,
572572
t: list[bool]) -> list[bool]:
573573
qubits = cudaq.qvector(n)
574-
return t
574+
return t.copy()
575575

576576
# Test with various sizes (validate dynamic output logging)
577577
for array_size in [10, 15, 100, 167, 1000]:

0 commit comments

Comments
 (0)