A system level language should encourage using the fastest opcode, so you shouldn't enforce 32 bit masking when the fastest register size is 64 bit etc.
This is what int_fast32_t is for, but unfortunately it's not guaranteed to be the fastest, but you can use something similar.