В C++ эта директива (хотя более правильно,
дефектива), уже объявлена как deprecated начиная с 11 версии стандарта. Почему
дефектива:
The register keyword serves very little function, offering no more than a hint that a note says is typically ignored
- Стандарт великого и могучего.
Так что она является лишь намеком компилятору, которому обычно на нее начхать.
Aside from this limitation, register is essentially meaningless in modern compilers due to optimization which will place variables in a register if appropriate regardless of whether the hint is given. For programming of embedded systems register may still be significant; for example the Microchip MPLAB XC32 compiler allows the programmer to specify a particular register with the keyword; however, this is discouraged in favor of the compiler's optimizations.
Гораздо быстрее получается код, который компилятор смог реализовать при помощи SIMD инструкций и раскрутки циклов, а не вот эти вот надежды.