In the GPU a register is a register is a register. It can hold any 32-bit quantity, e.g. a float or an int. The assignment of variables to registers is fluent throughout a kernel: the same variable may be held in more than one register over the lifetime of a kernel, and the same register may hold more than one variable over the lifetime of a kernel.
The register allocation mechanism in the backend of the compiler (ptxas) will assign registers to any variable that is “live” at any given point. The total register amount needed for a kernel will go up only if the number of live variables increases at the “fattest” point (the part of the program with the highest number of live registers).
The easiest way to check on the register use of a kernel is to add -Xptxas -v to the nvcc invocation and check register use statistics before and after a program change. Note that, generally speaking, register allocation interacts with instruction scheduling (also performed by pxtas) and therefore register count can go up and down when restructing code even when the number of variables does not change.