MCPcopy Create free account
hub / github.com/NVIDIA/cuda-quantum / body

Method body

python/cudaq/kernel/kernel_builder.py:525–546  ·  view source on GitHub ↗
(idx)

Source from the content-addressed store, hash-verified

523 seqSize=size).result
524
525 def body(idx):
526 eleAddr = cc.ComputePtrOp(
527 cc.PointerType.get(eleTy, self.ctx), alloca, [idx],
528 DenseI32ArrayAttr.get([-2147483648],
529 context=self.ctx)).result
530 element = arg[body.counter]
531 elementVal = None
532 if IntegerType.isinstance(eleTy):
533 elementVal = self.getConstantInt(element)
534 elif F64Type.isinstance(eleTy):
535 elementVal = self.getConstantFloat(element)
536 elif cc.StdvecType.isinstance(eleTy):
537 elementVal = self.__getMLIRValueFromPythonArg(
538 element, eleTy)
539 else:
540 emitFatalError(
541 f"CUDA-Q kernel builder could not process runtime "
542 f"list-like element type ({pyType}).")
543
544 cc.StoreOp(elementVal, eleAddr)
545 # Python is weird, but interesting.
546 body.counter += 1
547
548 body.counter = 0
549 self.createInvariantForLoop(size, body)

Callers 1

TraverseCompoundStmtMethod · 0.80

Calls 5

getConstantIntMethod · 0.95
getConstantFloatMethod · 0.95
emitFatalErrorFunction · 0.70
getMethod · 0.45

Tested by

no test coverage detected