Intel® C++ Compiler
Support and discussions for creating C++ code that runs on platforms based on Intel® processors.

Part use of 128 Bit SIMD Registers

inteleverywhere
Beginner
130 Views
Is there a way to use only a part of a 128 register (__m128i, __m128), say upper 64 or lower 64 bits only if the use of the older 64 bit register is not desirable?

Does this affect the performance (since only a part of the register is used while the rest is still be processed).

Deepak
0 Kudos
1 Reply
TimP
Black Belt
130 Views
I suppose, if you use shuffle or insert intrinsics, you make it explicit where the new and old fields are coming from. Opportunities for register renaming or out of order speedups at run time are restricted, since you have possibly different dependency sequences for the 2 parts of the register. Making it explicit with intrinsics doesn't necessarily create a different situation at run time from use of asm to modify part of the register while leaving the other part unchanged.
Reply