Predicate: is the dtype a signed integer type?
Dtype::Bool is intentionally excluded — booleans are stored
as 1-byte integers but have no meaningful arithmetic interpretation in
the integer sense, so promotion / index validation paths should not
treat them as integers.
Parameters
dtDtypeDtype to test.
Returns
booltrue for I8, I16, I32, I64; false for everything else (including Bool).