In the gnark-crypto implementation of eip-196, incomplete scalar inputs are already right padded with zero. However, points also require this treatment.
in g1Add, right pad p0 and p1 points with zero if they are not the full 32 bytes
in g1Mul, right pad p0 point if it is not 32 bytes and check to see if the resulting point is in the field before returning 0
For both precompiled contracts, if the input is shorter than expected, it is assumed to be virtually padded with zeros at the end (i.e. compatible with the semantics of the CALLDATALOAD opcode). If the input is longer than expected, surplus bytes at the end are ignored.
In the gnark-crypto implementation of eip-196, incomplete scalar inputs are already right padded with zero. However, points also require this treatment.
from eip-196 spec: