@SoufSilence,
Actual result of the operation is -63 and since output tensor is of type torch.quint8, thus the result need to be in the range [0, 255]. Therefore, -63 gets converted to the nearest number in this range.
If you pick the following numbers (I changed -59 to 59 in w), you get the result as 48.
x = np.array([3, 9, 30, 14, 4, 22, 11, 7, 5], dtype=np.int32)
w = np.array([17, 21, 59, -4, -10, -31, 2, -3, 59], dtype=np.int32)

Actual result of this operation is 47.75 and that gets rounded to 48. Since 48 is in the range [0, 255], it is returned as is.