library L {
    function add(bytes2 a, bytes2 b) internal pure returns (bytes2) {
        return bytes2(uint16(a) + uint16(b));
    }
}

contract C {
    using L for bytes2;

    function sum(bytes2 a, bytes2 b) public returns (bytes2) {
        return a.add(b);
    }
}
// ====
// compileViaYul: also
// ----
// sum(bytes2,bytes2): left(0x1100), left(0x0022) -> left(0x1122)
