microsoft/qdk
Publicmirrored from https://github.com/microsoft/qdkAvailable
source/pip/tests-integration/resources/adaptive_ri/output/ArithmeticOps.ll
113lines · modecode
| 1 | %Result = type opaque |
| 2 | %Qubit = type opaque |
| 3 | |
| 4 | define void @ENTRYPOINT__main() #0 { |
| 5 | block_0: |
| 6 | call void @__quantum__qis__x__body(%Qubit* inttoptr (i64 0 to %Qubit*)) |
| 7 | call void @__quantum__qis__x__body(%Qubit* inttoptr (i64 1 to %Qubit*)) |
| 8 | call void @__quantum__qis__x__body(%Qubit* inttoptr (i64 2 to %Qubit*)) |
| 9 | call void @__quantum__qis__x__body(%Qubit* inttoptr (i64 3 to %Qubit*)) |
| 10 | call void @__quantum__qis__x__body(%Qubit* inttoptr (i64 4 to %Qubit*)) |
| 11 | call void @__quantum__qis__m__body(%Qubit* inttoptr (i64 0 to %Qubit*), %Result* inttoptr (i64 0 to %Result*)) |
| 12 | call void @__quantum__qis__m__body(%Qubit* inttoptr (i64 1 to %Qubit*), %Result* inttoptr (i64 1 to %Result*)) |
| 13 | call void @__quantum__qis__m__body(%Qubit* inttoptr (i64 2 to %Qubit*), %Result* inttoptr (i64 2 to %Result*)) |
| 14 | call void @__quantum__qis__m__body(%Qubit* inttoptr (i64 3 to %Qubit*), %Result* inttoptr (i64 3 to %Result*)) |
| 15 | call void @__quantum__qis__m__body(%Qubit* inttoptr (i64 4 to %Qubit*), %Result* inttoptr (i64 4 to %Result*)) |
| 16 | %var_8 = call i1 @__quantum__qis__read_result__body(%Result* inttoptr (i64 0 to %Result*)) |
| 17 | br i1 %var_8, label %block_1, label %block_2 |
| 18 | block_1: |
| 19 | br label %block_2 |
| 20 | block_2: |
| 21 | %var_39 = phi i64 [1, %block_0], [3, %block_1] |
| 22 | %var_38 = phi i64 [10, %block_0], [8, %block_1] |
| 23 | %var_37 = phi i64 [0, %block_0], [5, %block_1] |
| 24 | %var_36 = phi i64 [0, %block_0], [1, %block_1] |
| 25 | %var_10 = call i1 @__quantum__qis__read_result__body(%Result* inttoptr (i64 1 to %Result*)) |
| 26 | br i1 %var_10, label %block_3, label %block_4 |
| 27 | block_3: |
| 28 | %var_12 = add i64 %var_36, 1 |
| 29 | %var_13 = add i64 %var_37, 5 |
| 30 | %var_14 = sub i64 %var_38, 2 |
| 31 | %var_15 = mul i64 %var_39, 3 |
| 32 | br label %block_4 |
| 33 | block_4: |
| 34 | %var_43 = phi i64 [%var_39, %block_2], [%var_15, %block_3] |
| 35 | %var_42 = phi i64 [%var_38, %block_2], [%var_14, %block_3] |
| 36 | %var_41 = phi i64 [%var_37, %block_2], [%var_13, %block_3] |
| 37 | %var_40 = phi i64 [%var_36, %block_2], [%var_12, %block_3] |
| 38 | %var_16 = call i1 @__quantum__qis__read_result__body(%Result* inttoptr (i64 2 to %Result*)) |
| 39 | br i1 %var_16, label %block_5, label %block_6 |
| 40 | block_5: |
| 41 | %var_18 = add i64 %var_40, 1 |
| 42 | %var_19 = add i64 %var_41, 5 |
| 43 | %var_20 = sub i64 %var_42, 2 |
| 44 | %var_21 = mul i64 %var_43, 3 |
| 45 | br label %block_6 |
| 46 | block_6: |
| 47 | %var_47 = phi i64 [%var_43, %block_4], [%var_21, %block_5] |
| 48 | %var_46 = phi i64 [%var_42, %block_4], [%var_20, %block_5] |
| 49 | %var_45 = phi i64 [%var_41, %block_4], [%var_19, %block_5] |
| 50 | %var_44 = phi i64 [%var_40, %block_4], [%var_18, %block_5] |
| 51 | %var_22 = call i1 @__quantum__qis__read_result__body(%Result* inttoptr (i64 3 to %Result*)) |
| 52 | br i1 %var_22, label %block_7, label %block_8 |
| 53 | block_7: |
| 54 | %var_24 = add i64 %var_44, 1 |
| 55 | %var_25 = add i64 %var_45, 5 |
| 56 | %var_26 = sub i64 %var_46, 2 |
| 57 | %var_27 = mul i64 %var_47, 3 |
| 58 | br label %block_8 |
| 59 | block_8: |
| 60 | %var_51 = phi i64 [%var_47, %block_6], [%var_27, %block_7] |
| 61 | %var_50 = phi i64 [%var_46, %block_6], [%var_26, %block_7] |
| 62 | %var_49 = phi i64 [%var_45, %block_6], [%var_25, %block_7] |
| 63 | %var_48 = phi i64 [%var_44, %block_6], [%var_24, %block_7] |
| 64 | %var_28 = call i1 @__quantum__qis__read_result__body(%Result* inttoptr (i64 4 to %Result*)) |
| 65 | br i1 %var_28, label %block_9, label %block_10 |
| 66 | block_9: |
| 67 | %var_30 = add i64 %var_48, 1 |
| 68 | %var_31 = add i64 %var_49, 5 |
| 69 | %var_32 = sub i64 %var_50, 2 |
| 70 | %var_33 = mul i64 %var_51, 3 |
| 71 | br label %block_10 |
| 72 | block_10: |
| 73 | %var_55 = phi i64 [%var_51, %block_8], [%var_33, %block_9] |
| 74 | %var_54 = phi i64 [%var_50, %block_8], [%var_32, %block_9] |
| 75 | %var_53 = phi i64 [%var_49, %block_8], [%var_31, %block_9] |
| 76 | %var_52 = phi i64 [%var_48, %block_8], [%var_30, %block_9] |
| 77 | call void @__quantum__qis__reset__body(%Qubit* inttoptr (i64 0 to %Qubit*)) |
| 78 | call void @__quantum__qis__reset__body(%Qubit* inttoptr (i64 1 to %Qubit*)) |
| 79 | call void @__quantum__qis__reset__body(%Qubit* inttoptr (i64 2 to %Qubit*)) |
| 80 | call void @__quantum__qis__reset__body(%Qubit* inttoptr (i64 3 to %Qubit*)) |
| 81 | call void @__quantum__qis__reset__body(%Qubit* inttoptr (i64 4 to %Qubit*)) |
| 82 | call void @__quantum__rt__tuple_record_output(i64 4, i8* null) |
| 83 | call void @__quantum__rt__int_record_output(i64 %var_52, i8* null) |
| 84 | call void @__quantum__rt__int_record_output(i64 %var_53, i8* null) |
| 85 | call void @__quantum__rt__int_record_output(i64 %var_54, i8* null) |
| 86 | call void @__quantum__rt__int_record_output(i64 %var_55, i8* null) |
| 87 | ret void |
| 88 | } |
| 89 | |
| 90 | declare void @__quantum__qis__x__body(%Qubit*) |
| 91 | |
| 92 | declare void @__quantum__qis__m__body(%Qubit*, %Result*) #1 |
| 93 | |
| 94 | declare i1 @__quantum__qis__read_result__body(%Result*) |
| 95 | |
| 96 | declare void @__quantum__qis__reset__body(%Qubit*) #1 |
| 97 | |
| 98 | declare void @__quantum__rt__tuple_record_output(i64, i8*) |
| 99 | |
| 100 | declare void @__quantum__rt__int_record_output(i64, i8*) |
| 101 | |
| 102 | attributes #0 = { "entry_point" "output_labeling_schema" "qir_profiles"="adaptive_profile" "required_num_qubits"="5" "required_num_results"="5" } |
| 103 | attributes #1 = { "irreversible" } |
| 104 | |
| 105 | ; module flags |
| 106 | |
| 107 | !llvm.module.flags = !{!0, !1, !2, !3, !4} |
| 108 | |
| 109 | !0 = !{i32 1, !"qir_major_version", i32 1} |
| 110 | !1 = !{i32 7, !"qir_minor_version", i32 0} |
| 111 | !2 = !{i32 1, !"dynamic_qubit_management", i1 false} |
| 112 | !3 = !{i32 1, !"dynamic_result_management", i1 false} |
| 113 | !4 = !{i32 1, !"int_computations", !"i64"} |
| 114 | |