  We extend Petkov\v{s}ek's algorithm for computing hypergeometric solutions of
scalar difference equations to the case of difference systems $\tau(Y) = M Y$,
with $M \in {\rm GL}_n(C(x))$, where $\tau$ is the shift operator.
Hypergeometric solutions are solutions of the form $\gamma P$ where $P \in
C(x)^n$ and $\gamma$ is a hypergeometric term over $C(x)$, i.e.
${\tau(\gamma)}/{\gamma} \in C(x)$. Our contributions concern efficient
computation of a set of candidates for ${\tau(\gamma)}/{\gamma}$ which we write
as $\lambda = c\frac{A}{B}$ with monic $A, B \in C[x]$, $c \in C^*$. Factors of
the denominators of $M^{-1}$ and $M$ give candidates for $A$ and $B$, while
another algorithm is needed for $c$. We use the super-reduction algorithm to
compute candidates for $c$, as well as other ingredients to reduce the list of
candidates for $A/B$. To further reduce the number of candidates $A/B$, we
bound the so-called type of $A/B$ by bounding local types. Our algorithm has
been implemented in Maple and experiments show that our implementation can
handle systems of high dimension, which is useful for factoring operators.
