Commit 3840f20a authored by Nguyen, Thien Minh's avatar Nguyen, Thien Minh
Browse files

Added reset instruction to Q# QIR target



Signed-off-by: default avatarThien Nguyen <nguyentm@ornl.gov>
parent 613b5c0a
Loading
Loading
Loading
Loading
+12 −0
Original line number Diff line number Diff line
@@ -17,6 +17,10 @@ namespace Microsoft.Quantum.Instructions {
    operation Rz (theta : Double, qb : Qubit) : Unit {
        body intrinsic;
    }

    operation Reset(qb : Qubit) : Unit {
        body intrinsic;
	}
}

namespace Microsoft.Quantum.Intrinsic {
@@ -148,4 +152,12 @@ namespace Microsoft.Quantum.Intrinsic {
            CNOT(ctls[0], qb);
        }
	}

    @Inline()
    operation Reset(qb : Qubit) : Unit {
        body  (...)
        {
            Phys.Reset(qb);  
		}
	}
}
 No newline at end of file
+3 −6
Original line number Diff line number Diff line
@@ -18,13 +18,10 @@ operation TestBell(count : Int) : Int {
        // Count the number of ones we saw:
        if res0 == One {
            set numOnes += 1;
            // Reset
            X(q[0]);
        }
        if res1 == One {
            // Reset
            X(q[0]);
        }
        
        Reset(q[0]);
        Reset(q[1]);
    }
    return numOnes;
}
+2 −0
Original line number Diff line number Diff line
@@ -201,4 +201,6 @@ double __quantum__qis__intasdouble__body(int32_t intVal) {
    std::cout << "CALL: " << __PRETTY_FUNCTION__ << "\n";
  return static_cast<double>(intVal);
}

void __quantum__qis__reset__body(Qubit *q) { __quantum__qis__reset(q); }
}
 No newline at end of file
+1 −0
Original line number Diff line number Diff line
@@ -43,6 +43,7 @@ void __quantum__qis__rx__body(double theta, Qubit *q);
void __quantum__qis__ry__body(double theta, Qubit *q);
void __quantum__qis__rz__body(double theta, Qubit *q);
void __quantum__qis__cnot__body(Qubit *src, Qubit *tgt);
void __quantum__qis__reset__body(Qubit *q);
Result *__quantum__qis__measure__body(Array *bases, Array *qubits);
double __quantum__qis__intasdouble__body(int32_t intVal);
}