1 or 2 registers for 16 bit data?

The programming guide says 64bit data consumes 2 32-bit registers. It says nothing about 16-bit data.

I’m guessing a short uses 1 register, and a char uses 1 register, instead of 1/2 register and 1/4 register, respectively, meaning that there’s no advantage to using short over int in terms of reducing register pressure? Can anyone confirm or deny this?

Compute 1.x architectures do support packing two 16-bit numbers inside one 32-bit register. 8-bit data still takes a half 32-bit register.

However most arithmetic instructions can’t operate on such half registers, so they have to be packed and unpacked. This often offsets the benefit of reducing register pressure…

And this is subject to change really soon with Fermi.

Smaller datatypes are mostly useful for reducing global memory bandwidth utilization, or shared memory footprint.