@@ -993,14 +993,20 @@ mod given_interpreter {
993
993
%Result = type opaque
994
994
%Qubit = type opaque
995
995
996
- define void @ENTRYPOINT__main() #0 {
996
+ @empty_tag = internal constant [1 x i8] c"\00"
997
+ @0 = internal constant [4 x i8] c"0_r\00"
998
+
999
+ define i64 @ENTRYPOINT__main() #0 {
997
1000
block_0:
1001
+ call void @__quantum__rt__initialize(i8* null)
998
1002
call void @__quantum__qis__cx__body(%Qubit* inttoptr (i64 0 to %Qubit*), %Qubit* inttoptr (i64 1 to %Qubit*))
999
1003
call void @__quantum__qis__m__body(%Qubit* inttoptr (i64 0 to %Qubit*), %Result* inttoptr (i64 0 to %Result*))
1000
- call void @__quantum__rt__result_record_output(%Result* inttoptr (i64 0 to %Result*), i8* null )
1001
- ret void
1004
+ call void @__quantum__rt__result_record_output(%Result* inttoptr (i64 0 to %Result*), i8* getelementptr inbounds ([4 x i8], [4 x i8]* @0, i64 0, i64 0) )
1005
+ ret i64 0
1002
1006
}
1003
1007
1008
+ declare void @__quantum__rt__initialize(i8*)
1009
+
1004
1010
declare void @__quantum__qis__m__body(%Qubit*, %Result*) #1
1005
1011
1006
1012
declare void @__quantum__rt__result_record_output(%Result*, i8*)
@@ -1054,16 +1060,22 @@ mod given_interpreter {
1054
1060
%Result = type opaque
1055
1061
%Qubit = type opaque
1056
1062
1057
- define void @ENTRYPOINT__main() #0 {
1063
+ @empty_tag = internal constant [1 x i8] c"\00"
1064
+ @0 = internal constant [4 x i8] c"0_r\00"
1065
+
1066
+ define i64 @ENTRYPOINT__main() #0 {
1058
1067
block_0:
1068
+ call void @__quantum__rt__initialize(i8* null)
1059
1069
call void @__quantum__qis__rz__body(double 2.0, %Qubit* inttoptr (i64 0 to %Qubit*))
1060
1070
call void @__quantum__qis__rz__body(double 0.0, %Qubit* inttoptr (i64 0 to %Qubit*))
1061
1071
call void @__quantum__qis__rz__body(double 1.0, %Qubit* inttoptr (i64 0 to %Qubit*))
1062
1072
call void @__quantum__qis__mresetz__body(%Qubit* inttoptr (i64 0 to %Qubit*), %Result* inttoptr (i64 0 to %Result*))
1063
- call void @__quantum__rt__result_record_output(%Result* inttoptr (i64 0 to %Result*), i8* null )
1064
- ret void
1073
+ call void @__quantum__rt__result_record_output(%Result* inttoptr (i64 0 to %Result*), i8* getelementptr inbounds ([4 x i8], [4 x i8]* @0, i64 0, i64 0) )
1074
+ ret i64 0
1065
1075
}
1066
1076
1077
+ declare void @__quantum__rt__initialize(i8*)
1078
+
1067
1079
declare void @__quantum__qis__rz__body(double, %Qubit*)
1068
1080
1069
1081
declare void @__quantum__qis__mresetz__body(%Qubit*, %Result*) #1
@@ -1081,7 +1093,7 @@ mod given_interpreter {
1081
1093
!1 = !{i32 7, !"qir_minor_version", i32 0}
1082
1094
!2 = !{i32 1, !"dynamic_qubit_management", i1 false}
1083
1095
!3 = !{i32 1, !"dynamic_result_management", i1 false}
1084
- !4 = !{i32 1 , !"int_computations", !"i64"}
1096
+ !4 = !{i32 5 , !"int_computations", !{! "i64"} }
1085
1097
"# ] ]
1086
1098
. assert_eq ( & res) ;
1087
1099
}
@@ -1111,23 +1123,31 @@ mod given_interpreter {
1111
1123
%Result = type opaque
1112
1124
%Qubit = type opaque
1113
1125
1114
- define void @ENTRYPOINT__main() #0 {
1126
+ @empty_tag = internal constant [1 x i8] c"\00"
1127
+ @0 = internal constant [6 x i8] c"0_t0r\00"
1128
+ @1 = internal constant [8 x i8] c"1_t1t0b\00"
1129
+ @2 = internal constant [8 x i8] c"2_t1t1b\00"
1130
+
1131
+ define i64 @ENTRYPOINT__main() #0 {
1115
1132
block_0:
1133
+ call void @__quantum__rt__initialize(i8* null)
1116
1134
call void @__quantum__qis__mresetz__body(%Qubit* inttoptr (i64 0 to %Qubit*), %Result* inttoptr (i64 0 to %Result*))
1117
- %var_0 = call i1 @__quantum__qis__read_result__body (%Result* inttoptr (i64 0 to %Result*))
1118
- %var_2 = call i1 @__quantum__qis__read_result__body (%Result* inttoptr (i64 0 to %Result*))
1135
+ %var_0 = call i1 @__quantum__rt__read_result (%Result* inttoptr (i64 0 to %Result*))
1136
+ %var_2 = call i1 @__quantum__rt__read_result (%Result* inttoptr (i64 0 to %Result*))
1119
1137
%var_3 = icmp eq i1 %var_2, false
1120
- call void @__quantum__rt__tuple_record_output(i64 2, i8* null )
1121
- call void @__quantum__rt__result_record_output(%Result* inttoptr (i64 0 to %Result*), i8* null )
1122
- call void @__quantum__rt__tuple_record_output(i64 2, i8* null )
1123
- call void @__quantum__rt__bool_record_output(i1 %var_0, i8* null )
1124
- call void @__quantum__rt__bool_record_output(i1 %var_3, i8* null )
1125
- ret void
1138
+ call void @__quantum__rt__tuple_record_output(i64 2, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @empty_tag, i64 0, i64 0) )
1139
+ call void @__quantum__rt__result_record_output(%Result* inttoptr (i64 0 to %Result*), i8* getelementptr inbounds ([6 x i8], [6 x i8]* @0, i64 0, i64 0) )
1140
+ call void @__quantum__rt__tuple_record_output(i64 2, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @empty_tag, i64 0, i64 0) )
1141
+ call void @__quantum__rt__bool_record_output(i1 %var_0, i8* getelementptr inbounds ([8 x i8], [8 x i8]* @1, i64 0, i64 0) )
1142
+ call void @__quantum__rt__bool_record_output(i1 %var_3, i8* getelementptr inbounds ([8 x i8], [8 x i8]* @2, i64 0, i64 0) )
1143
+ ret i64 0
1126
1144
}
1127
1145
1146
+ declare void @__quantum__rt__initialize(i8*)
1147
+
1128
1148
declare void @__quantum__qis__mresetz__body(%Qubit*, %Result*) #1
1129
1149
1130
- declare i1 @__quantum__qis__read_result__body (%Result*)
1150
+ declare i1 @__quantum__rt__read_result (%Result*)
1131
1151
1132
1152
declare void @__quantum__rt__tuple_record_output(i64, i8*)
1133
1153
@@ -1188,14 +1208,20 @@ mod given_interpreter {
1188
1208
%Result = type opaque
1189
1209
%Qubit = type opaque
1190
1210
1191
- define void @ENTRYPOINT__main() #0 {
1211
+ @empty_tag = internal constant [1 x i8] c"\00"
1212
+ @0 = internal constant [4 x i8] c"0_r\00"
1213
+
1214
+ define i64 @ENTRYPOINT__main() #0 {
1192
1215
block_0:
1216
+ call void @__quantum__rt__initialize(i8* null)
1193
1217
call void @__quantum__qis__cx__body(%Qubit* inttoptr (i64 0 to %Qubit*), %Qubit* inttoptr (i64 1 to %Qubit*))
1194
1218
call void @__quantum__qis__m__body(%Qubit* inttoptr (i64 0 to %Qubit*), %Result* inttoptr (i64 0 to %Result*))
1195
- call void @__quantum__rt__result_record_output(%Result* inttoptr (i64 0 to %Result*), i8* null )
1196
- ret void
1219
+ call void @__quantum__rt__result_record_output(%Result* inttoptr (i64 0 to %Result*), i8* getelementptr inbounds ([4 x i8], [4 x i8]* @0, i64 0, i64 0) )
1220
+ ret i64 0
1197
1221
}
1198
1222
1223
+ declare void @__quantum__rt__initialize(i8*)
1224
+
1199
1225
declare void @__quantum__qis__m__body(%Qubit*, %Result*) #1
1200
1226
1201
1227
declare void @__quantum__rt__result_record_output(%Result*, i8*)
@@ -1232,14 +1258,20 @@ mod given_interpreter {
1232
1258
%Result = type opaque
1233
1259
%Qubit = type opaque
1234
1260
1235
- define void @ENTRYPOINT__main() #0 {
1261
+ @empty_tag = internal constant [1 x i8] c"\00"
1262
+ @0 = internal constant [4 x i8] c"0_r\00"
1263
+
1264
+ define i64 @ENTRYPOINT__main() #0 {
1236
1265
block_0:
1266
+ call void @__quantum__rt__initialize(i8* null)
1237
1267
call void @__quantum__qis__cx__body(%Qubit* inttoptr (i64 0 to %Qubit*), %Qubit* inttoptr (i64 1 to %Qubit*))
1238
1268
call void @__quantum__qis__m__body(%Qubit* inttoptr (i64 0 to %Qubit*), %Result* inttoptr (i64 0 to %Result*))
1239
- call void @__quantum__rt__result_record_output(%Result* inttoptr (i64 0 to %Result*), i8* null )
1240
- ret void
1269
+ call void @__quantum__rt__result_record_output(%Result* inttoptr (i64 0 to %Result*), i8* getelementptr inbounds ([4 x i8], [4 x i8]* @0, i64 0, i64 0) )
1270
+ ret i64 0
1241
1271
}
1242
1272
1273
+ declare void @__quantum__rt__initialize(i8*)
1274
+
1243
1275
declare void @__quantum__qis__m__body(%Qubit*, %Result*) #1
1244
1276
1245
1277
declare void @__quantum__rt__result_record_output(%Result*, i8*)
@@ -1308,14 +1340,20 @@ mod given_interpreter {
1308
1340
%Result = type opaque
1309
1341
%Qubit = type opaque
1310
1342
1311
- define void @ENTRYPOINT__main() #0 {
1343
+ @empty_tag = internal constant [1 x i8] c"\00"
1344
+ @0 = internal constant [4 x i8] c"0_r\00"
1345
+
1346
+ define i64 @ENTRYPOINT__main() #0 {
1312
1347
block_0:
1348
+ call void @__quantum__rt__initialize(i8* null)
1313
1349
call void @__quantum__qis__cx__body(%Qubit* inttoptr (i64 0 to %Qubit*), %Qubit* inttoptr (i64 1 to %Qubit*))
1314
1350
call void @__quantum__qis__m__body(%Qubit* inttoptr (i64 0 to %Qubit*), %Result* inttoptr (i64 0 to %Result*))
1315
- call void @__quantum__rt__result_record_output(%Result* inttoptr (i64 0 to %Result*), i8* null )
1316
- ret void
1351
+ call void @__quantum__rt__result_record_output(%Result* inttoptr (i64 0 to %Result*), i8* getelementptr inbounds ([4 x i8], [4 x i8]* @0, i64 0, i64 0) )
1352
+ ret i64 0
1317
1353
}
1318
1354
1355
+ declare void @__quantum__rt__initialize(i8*)
1356
+
1319
1357
declare void @__quantum__qis__m__body(%Qubit*, %Result*) #1
1320
1358
1321
1359
declare void @__quantum__rt__result_record_output(%Result*, i8*)
@@ -1364,14 +1402,20 @@ mod given_interpreter {
1364
1402
%Result = type opaque
1365
1403
%Qubit = type opaque
1366
1404
1367
- define void @ENTRYPOINT__main() #0 {
1405
+ @empty_tag = internal constant [1 x i8] c"\00"
1406
+ @0 = internal constant [4 x i8] c"0_r\00"
1407
+
1408
+ define i64 @ENTRYPOINT__main() #0 {
1368
1409
block_0:
1410
+ call void @__quantum__rt__initialize(i8* null)
1369
1411
call void @__quantum__qis__cx__body(%Qubit* inttoptr (i64 0 to %Qubit*), %Qubit* inttoptr (i64 1 to %Qubit*))
1370
1412
call void @__quantum__qis__m__body(%Qubit* inttoptr (i64 0 to %Qubit*), %Result* inttoptr (i64 0 to %Result*))
1371
- call void @__quantum__rt__result_record_output(%Result* inttoptr (i64 0 to %Result*), i8* null )
1372
- ret void
1413
+ call void @__quantum__rt__result_record_output(%Result* inttoptr (i64 0 to %Result*), i8* getelementptr inbounds ([4 x i8], [4 x i8]* @0, i64 0, i64 0) )
1414
+ ret i64 0
1373
1415
}
1374
1416
1417
+ declare void @__quantum__rt__initialize(i8*)
1418
+
1375
1419
declare void @__quantum__qis__m__body(%Qubit*, %Result*) #1
1376
1420
1377
1421
declare void @__quantum__rt__result_record_output(%Result*, i8*)
@@ -1419,14 +1463,20 @@ mod given_interpreter {
1419
1463
%Result = type opaque
1420
1464
%Qubit = type opaque
1421
1465
1422
- define void @ENTRYPOINT__main() #0 {
1466
+ @empty_tag = internal constant [1 x i8] c"\00"
1467
+ @0 = internal constant [4 x i8] c"0_b\00"
1468
+
1469
+ define i64 @ENTRYPOINT__main() #0 {
1423
1470
block_0:
1471
+ call void @__quantum__rt__initialize(i8* null)
1424
1472
call void @__quantum__qis__mresetz__body(%Qubit* inttoptr (i64 0 to %Qubit*), %Result* inttoptr (i64 0 to %Result*))
1425
1473
%var_0 = call i1 @check_result(%Result* inttoptr (i64 0 to %Result*))
1426
- call void @__quantum__rt__bool_record_output(i1 %var_0, i8* null )
1427
- ret void
1474
+ call void @__quantum__rt__bool_record_output(i1 %var_0, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @0, i64 0, i64 0) )
1475
+ ret i64 0
1428
1476
}
1429
1477
1478
+ declare void @__quantum__rt__initialize(i8*)
1479
+
1430
1480
declare void @__quantum__qis__mresetz__body(%Qubit*, %Result*) #1
1431
1481
1432
1482
declare i1 @check_result(%Result*)
0 commit comments