@@ -25,9 +25,7 @@ def ghz(numQubits: int):
25
25
print (cudaq .translate (ghz_synth , format = 'qir-base' ))
26
26
27
27
28
- # CHECK: %[[VAL_0:.*]] = tail call
29
- # CHECK: %[[VAL_1:.*]]* @__quantum__rt__qubit_allocate_array(i64
30
- # CHECK: %[[VAL_2:.*]])
28
+ # CHECK: %[[VAL_0:.*]] = tail call %[[VAL_1:.*]]* @__quantum__rt__qubit_allocate_array(i64 %[[VAL_2:.*]])
31
29
# CHECK: %[[VAL_3:.*]] = tail call i8* @__quantum__rt__array_get_element_ptr_1d(%[[VAL_1]]* %[[VAL_0]], i64 0)
32
30
# CHECK: %[[VAL_4:.*]] = bitcast i8* %[[VAL_3]] to %[[VAL_5:.*]]**
33
31
# CHECK: %[[VAL_6:.*]] = load %[[VAL_5]]*, %[[VAL_5]]** %[[VAL_4]], align 8
@@ -43,25 +41,24 @@ def ghz(numQubits: int):
43
41
# CHECK: store i64 %[[VAL_14]], i64* %[[VAL_16]], align 8
44
42
# CHECK: %[[VAL_15]] = add nuw nsw i64 %[[VAL_14]], 1
45
43
# CHECK: %[[VAL_17:.*]] = icmp slt i64 %[[VAL_15]], %[[VAL_7]]
46
- # CHECK: br i1 %[[VAL_17]], label %[[VAL_11]], label %[[VAL_12]]
47
- # CHECK: ._crit_edge: ; preds = %[[VAL_11]], %[[VAL_13]]
48
- # CHECK: %[[VAL_18:.*]] = alloca { i64, i64 }, i64 %[[VAL_8]], align 8
49
- # CHECK: %[[VAL_19:.*]] = icmp sgt i64 %[[VAL_8]], 0
50
- # CHECK: br i1 %[[VAL_19]], label %[[VAL_20:.*]], label %[[VAL_21:.*]]
44
+ # CHECK: br i1 %[[VAL_17]], label %[[VAL_11]], label %[[VAL_21:.*]]
45
+ # CHECK: ._crit_edge: ; preds = %[[VAL_11]]
46
+ # CHECK: %[[VAL_18:.*]] = alloca { i64, i64 }, i64 %[[VAL_7]], align 8
47
+ # CHECK: br i1 %[[VAL_10]], label %[[VAL_20:.*]], label %[[VAL_21]]
51
48
# CHECK: .preheader: ; preds = %[[VAL_20]]
52
- # CHECK: br i1 %[[VAL_19 ]], label %[[VAL_22:.*]], label %[[VAL_21]]
53
- # CHECK: .lr.ph9 : ; preds = %[[VAL_12 ]], %[[VAL_20]]
54
- # CHECK: %[[VAL_23:.*]] = phi i64 [ %[[VAL_24:.*]], %[[VAL_20]] ], [ 0, %[[VAL_12 ]] ]
49
+ # CHECK: br i1 %[[VAL_10 ]], label %[[VAL_22:.*]], label %[[VAL_21]]
50
+ # CHECK: .lr.ph10 : ; preds = %[[VAL_21 ]], %[[VAL_20]]
51
+ # CHECK: %[[VAL_23:.*]] = phi i64 [ %[[VAL_24:.*]], %[[VAL_20]] ], [ 0, %[[VAL_21 ]] ]
55
52
# CHECK: %[[VAL_25:.*]] = getelementptr i64, i64* %[[VAL_9]], i64 %[[VAL_23]]
56
53
# CHECK: %[[VAL_26:.*]] = load i64, i64* %[[VAL_25]], align 8
57
54
# CHECK: %[[VAL_27:.*]] = getelementptr { i64, i64 }, { i64, i64 }* %[[VAL_18]], i64 %[[VAL_23]], i32 0
58
55
# CHECK: store i64 %[[VAL_23]], i64* %[[VAL_27]], align 8
59
56
# CHECK: %[[VAL_28:.*]] = getelementptr { i64, i64 }, { i64, i64 }* %[[VAL_18]], i64 %[[VAL_23]], i32 1
60
57
# CHECK: store i64 %[[VAL_26]], i64* %[[VAL_28]], align 8
61
58
# CHECK: %[[VAL_24]] = add nuw nsw i64 %[[VAL_23]], 1
62
- # CHECK: %[[VAL_29:.*]] = icmp slt i64 %[[VAL_24]], %[[VAL_8 ]]
59
+ # CHECK: %[[VAL_29:.*]] = icmp slt i64 %[[VAL_24]], %[[VAL_7 ]]
63
60
# CHECK: br i1 %[[VAL_29]], label %[[VAL_20]], label %[[VAL_30:.*]]
64
- # CHECK: .lr.ph10 : ; preds = %[[VAL_30]], %[[VAL_22]]
61
+ # CHECK: .lr.ph11 : ; preds = %[[VAL_30]], %[[VAL_22]]
65
62
# CHECK: %[[VAL_31:.*]] = phi i64 [ %[[VAL_32:.*]], %[[VAL_22]] ], [ 0, %[[VAL_30]] ]
66
63
# CHECK: %[[VAL_33:.*]] = getelementptr { i64, i64 }, { i64, i64 }* %[[VAL_18]], i64 %[[VAL_31]], i32 0
67
64
# CHECK: %[[VAL_34:.*]] = load i64, i64* %[[VAL_33]], align 8
@@ -76,9 +73,9 @@ def ghz(numQubits: int):
76
73
# CHECK: %[[VAL_43:.*]] = load %[[VAL_5]]*, %[[VAL_5]]** %[[VAL_42]], align 8
77
74
# CHECK: tail call void (i64, void (%[[VAL_1]]*, %[[VAL_5]]*)*, ...) @invokeWithControlQubits(i64 1, void (%[[VAL_1]]*, %[[VAL_5]]*)* nonnull @__quantum__qis__x__ctl, %[[VAL_5]]* %[[VAL_39]], %[[VAL_5]]* %[[VAL_43]])
78
75
# CHECK: %[[VAL_32]] = add nuw nsw i64 %[[VAL_31]], 1
79
- # CHECK: %[[VAL_44:.*]] = icmp slt i64 %[[VAL_32]], %[[VAL_8 ]]
76
+ # CHECK: %[[VAL_44:.*]] = icmp slt i64 %[[VAL_32]], %[[VAL_7 ]]
80
77
# CHECK: br i1 %[[VAL_44]], label %[[VAL_22]], label %[[VAL_21]]
81
- # CHECK: ._crit_edge11 : ; preds = %[[VAL_22]], %[[VAL_12 ]], %[[VAL_30]]
78
+ # CHECK: ._crit_edge12 : ; preds = %[[VAL_22]], %[[VAL_13]], %[[VAL_21 ]], %[[VAL_30]]
82
79
# CHECK: tail call void @__quantum__rt__qubit_release_array(%[[VAL_1]]* %[[VAL_0]])
83
80
# CHECK: ret void
84
81
0 commit comments