1818// Native Gradients //
1919//////////////////////
2020
21- func.func private @circuit.nodealloc (%arg0: f32 ) -> (!quantum.reg )
21+ func.func private @circuit.nodealloc (%arg0: f32 ) -> (!quantum.reg , f64 )
2222
2323// CHECK-DAG: llvm.func @__catalyst__rt__toggle_recorder(i1)
2424// CHECK-DAG: llvm.func @__catalyst__qis__Gradient(i64, ...)
@@ -29,7 +29,7 @@ func.func @adjoint(%arg0: f32, %arg1 : index) -> (memref<?xf64>, memref<?xf64>)
2929 // CHECK-DAG: [[F:%.+]] = llvm.mlir.constant(false) : i1
3030
3131 // CHECK: llvm.call @__catalyst__rt__toggle_recorder([[T]]) : (i1) -> ()
32- // CHECK: [[QREG :%.+]] = call @circuit.nodealloc(%arg0)
32+ // CHECK: [[QREG_and_expval :%.+]]:2 = call @circuit.nodealloc(%arg0)
3333 // CHECK: llvm.call @__catalyst__rt__toggle_recorder([[F]])
3434
3535 // CHECK-DAG: [[C1:%.+]] = llvm.mlir.constant(1 : i64) : i64
@@ -38,7 +38,7 @@ func.func @adjoint(%arg0: f32, %arg1 : index) -> (memref<?xf64>, memref<?xf64>)
3838 // CHECK: [[GRAD2:%.+]] = llvm.alloca [[C1]] x !llvm.struct<(ptr, ptr, i64, array<1 x i64>, array<1 x i64>)>
3939
4040 // CHECK: llvm.call @__catalyst__qis__Gradient([[C2]], [[GRAD1]], [[GRAD2]])
41- // CHECK: quantum.dealloc [[QREG]]
41+ // CHECK: quantum.dealloc [[QREG_and_expval]]#0
4242 %alloc0 = memref.alloc (%arg1 ) : memref <?xf64 >
4343 %alloc1 = memref.alloc (%arg1 ) : memref <?xf64 >
4444 gradient.adjoint @circuit.nodealloc (%arg0 ) size (%arg1 ) in (%alloc0 , %alloc1 : memref <?xf64 >, memref <?xf64 >) : (f32 ) -> ()
0 commit comments