Normally the inputs to garbled circuits are known by the party who owns the input and are plaintexts.
There are scenarios in which the functionality (implemented by GC) needs to be evaluated on shared input. For example, if the two parties are not trusted with the plaintext input (may be owned by a third party) and instead only get shares of the input. The garbled circuit then consists of two sub-circuits: (1) the first sub-circuit combines the shares and recovers the secret input, and feeds it (without revealing it) to (2) the sub-circuit that implements the functionality to be evaluated on the secret input. At the end, the output is given to the parties (or if you want, you can append another circuit to split the output into two shares and give one share to each party)