Ambas instrucciones son casi idénticas, ya que ambas devuelven un 0 o un 1 según esté el pin a nivel bajo o alto respectivamente.
La única diferencia entre input e input_state es que el primero fuerza al pin a comportarse como una entrada si no lo estuviera (TRIS=1) mientras que el segundo sólo lee su estado sin modificar la dirección.