On some targets (e.g. X86), shift amounts are not the same as the value