From c28df7286ff2c0f8e2f37b89b8c2b5170eb51e49 Mon Sep 17 00:00:00 2001 From: "Stefan J. Wernli" Date: Tue, 13 Apr 2021 23:25:34 -0700 Subject: [PATCH] Add missing tuple copy to runtime IR --- src/Qir/Runtime/lib/QIR/bridge-rt.ll | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/Qir/Runtime/lib/QIR/bridge-rt.ll b/src/Qir/Runtime/lib/QIR/bridge-rt.ll index c792e72cb82..3c54b56506e 100644 --- a/src/Qir/Runtime/lib/QIR/bridge-rt.ll +++ b/src/Qir/Runtime/lib/QIR/bridge-rt.ll @@ -80,6 +80,7 @@ declare void @llvm.va_end(i8*) declare i8* @quantum__rt__tuple_create(i64) declare void @quantum__rt__tuple_update_reference_count(i8*, i32) declare void @quantum__rt__tuple_update_alias_count(i8*, i32) +declare i8* @quantum__rt__tuple_copy(i8*, i1) declare void @quantum__rt__callable_update_reference_count(%"struct.QirCallable"*, i32) declare %"struct.QirCallable"* @quantum__rt__callable_create(void (i8*, i8*, i8*)**, void (i8*, i64)**, i8*) @@ -341,6 +342,13 @@ define dllexport void @__quantum__rt__tuple_update_alias_count(%Tuple* %.th, i32 ret void } +define dllexport %Tuple* @__quantum__rt__tuple_copy(%Tuple* %.th, i1 %force) { + %th = bitcast %Tuple* %.th to i8* + %th2 = call i8* @quantum__rt__tuple_copy(i8* %th, i1 %force) + %.th2 = bitcast i8* %th2 to %Tuple* + ret %Tuple* %.th2 +} + ;------------------------------------------------------------------------------ ; callables bridge ;