@@ -221,9 +221,9 @@ module @custom_gate {
221
221
// CHECK: llvm.func @__catalyst__qis__RX(f64, !llvm.ptr, !llvm.ptr)
222
222
// CHECK-LABEL: @test
223
223
func.func @test (%q0: !quantum.bit , %p: f64 ) -> () {
224
- // CHECK: [[nullptr:%.+]] = llvm.mlir.zero
225
224
// CHECK: [[c1:%.+]] = llvm.mlir.constant(1 : i64)
226
225
// CHECK: [[alloca:%.+]] = llvm.alloca [[c1]] x !llvm.struct<(i1, i64, ptr, ptr)>
226
+ // CHECK: [[nullptr:%.+]] = llvm.mlir.zero
227
227
// CHECK: [[true:%.+]] = llvm.mlir.constant(true)
228
228
// CHECK: [[off0:%.+]] = llvm.getelementptr inbounds [[alloca]][0, 0]
229
229
// CHECK: [[off1:%.+]] = llvm.getelementptr inbounds [[alloca]][0, 1]
@@ -382,6 +382,8 @@ func.func @hamiltonian(%obs : !quantum.obs, %p1 : memref<1xf64>, %p2 : memref<3x
382
382
// CHECK: [[memrefvar2:%.+]] = llvm.insertvalue %arg3, [[memrefvar1]][2]
383
383
// CHECK: [[memrefvar3:%.+]] = llvm.insertvalue %arg4, [[memrefvar2]][3, 0]
384
384
// CHECK: [[memrefvar4:%.+]] = llvm.insertvalue %arg5, [[memrefvar3]][4, 0]
385
+ // CHECK: [[cast:%.+]] = builtin.unrealized_conversion_cast [[memrefvar4]]
386
+ // CHECK: [[memrefvar4:%.+]] = builtin.unrealized_conversion_cast [[cast]]
385
387
// CHECK: [[c1:%.+]] = llvm.mlir.constant(1 : i64)
386
388
// CHECK: llvm.store [[memrefvar4]], [[alloca]]
387
389
// CHECK: llvm.call @__catalyst__qis__HamiltonianObs([[alloca]], [[c1]], %arg0)
@@ -401,8 +403,10 @@ func.func @hamiltonian(%obs : !quantum.obs, %p1 : memref<1xf64>, %p2 : memref<3x
401
403
// CHECK: [[memrefvar2:%.+]] = llvm.insertvalue %arg8, [[memrefvar1]][2]
402
404
// CHECK: [[memrefvar3:%.+]] = llvm.insertvalue %arg9, [[memrefvar2]][3, 0]
403
405
// CHECK: [[memrefvar4:%.+]] = llvm.insertvalue %arg10, [[memrefvar3]][4, 0]
406
+ // CHECK: [[cast:%.+]] = builtin.unrealized_conversion_cast [[memrefvar4]]
404
407
// CHECK: [[c1:%.+]] = llvm.mlir.constant(1 : i64)
405
408
// CHECK: [[alloca:%.+]] = llvm.alloca [[c1]] x !llvm.struct<(ptr, ptr, i64, array<1 x i64>, array<1 x i64>)>
409
+ // CHECK: [[memrefvar4:%.+]] = builtin.unrealized_conversion_cast [[cast]]
406
410
// CHECK: [[c3:%.+]] = llvm.mlir.constant(3 : i64)
407
411
// CHECK: llvm.store [[memrefvar4]], [[alloca]]
408
412
// CHECK: llvm.call @__catalyst__qis__HamiltonianObs([[alloca]], [[c3]], %arg0, %arg0, %arg0)
@@ -580,12 +584,11 @@ func.func @probs(%q : !quantum.bit) {
580
584
581
585
// CHECK-LABEL: @state
582
586
func.func @state (%q : !quantum.bit ) {
583
- // CHECK: [[qb:%.+]] = builtin.unrealized_conversion_cast %arg0
584
-
585
587
%o1 = quantum.compbasis qubits %q : !quantum.obs
586
588
587
589
// CHECK: [[c1:%.+]] = llvm.mlir.constant(1 : i64)
588
590
// CHECK: [[ptr:%.+]] = llvm.alloca [[c1]] x !llvm.struct<(ptr, ptr, i64, array<1 x i64>, array<1 x i64>)>
591
+ // CHECK: [[qb:%.+]] = builtin.unrealized_conversion_cast %arg0
589
592
// CHECK: [[c0:%.+]] = llvm.mlir.constant(0 : i64)
590
593
// CHECK: llvm.call @__catalyst__qis__State([[ptr]], [[c0]])
591
594
%alloc1 = memref.alloc () : memref <2 xcomplex <f64 >>
@@ -618,13 +621,13 @@ func.func @controlled_circuit(%1 : !quantum.bit, %2 : !quantum.bit, %3 : !quantu
618
621
%cst_0 = llvm.mlir.constant (9.000000e-01 : f64 ) : f64
619
622
%cst_1 = llvm.mlir.constant (3.000000e-01 : f64 ) : f64
620
623
621
- // CHECK: [[true:%.+]] = llvm.mlir.constant(true)
622
624
// CHECK: [[c1:%.+]] = llvm.mlir.constant(1 : i64)
623
625
// CHECK: [[alloca0:%.+]] = llvm.alloca [[c1]] x i1
624
626
// CHECK: [[c1:%.+]] = llvm.mlir.constant(1 : i64)
625
627
// CHECK: [[alloca1:%.+]] = llvm.alloca [[c1]] x !llvm.ptr
626
628
// CHECK: [[c1:%.+]] = llvm.mlir.constant(1 : i64)
627
629
// CHECK: [[mod:%.+]] = llvm.alloca [[c1]] x !llvm.struct<(i1, i64, ptr, ptr)>
630
+ // CHECK: [[true:%.+]] = llvm.mlir.constant(true)
628
631
629
632
630
633
// CHECK-DAG: [[cst6:%.+]] = llvm.mlir.constant(6.0
@@ -658,13 +661,13 @@ func.func @controlled_circuit(%1 : !quantum.bit, %2 : !quantum.bit, %3 : !quantu
658
661
%cst = llvm.mlir.constant (6.000000e-01 : f64 ) : f64
659
662
%true = llvm.mlir.constant (1 : i1 ) :i1
660
663
661
- // CHECK-DAG: [[cst6:%.+]] = llvm.mlir.constant(6.0
662
664
// CHECK: [[c1:%.+]] = llvm.mlir.constant(1 : i64)
663
665
// CHECK: [[alloca0:%.+]] = llvm.alloca [[c1]] x i1
664
666
// CHECK: [[c1:%.+]] = llvm.mlir.constant(1 : i64)
665
667
// CHECK: [[alloca1:%.+]] = llvm.alloca [[c1]] x !llvm.ptr
666
668
// CHECK: [[c1:%.+]] = llvm.mlir.constant(1 : i64)
667
669
// CHECK: [[mod:%.+]] = llvm.alloca [[c1]] x !llvm.struct<(i1, i64, ptr, ptr)>
670
+ // CHECK: [[cst6:%.+]] = llvm.mlir.constant(6.0
668
671
// CHECK: [[true:%.+]] = llvm.mlir.constant(true)
669
672
670
673
// CHECK: [[offset0:%.+]] = llvm.getelementptr inbounds [[mod]][0, 0]
0 commit comments