CPU register banks have for a long time separated integer and floating-point registers, for several reasons including letting instructions specify registers with fewer bits, saving resources on read/write ports, and being able to physically locate the register banks closer to the respective execution units.
This ended up holding true for a vector register set: MMX initially reused the 8087 floating-point registers for short integer vectors, but a later x86 CPU added a second set of registers for the short integers, even though it had to go to some trouble to pretend they were the same registers in case there was code that accidentally depended on that.
What about modern GPUs? Do they have unified or separate vector register banks for integers and floating-point numbers? And if unified, why do they make a different choice compared to CPUs?