if a register has to be filled with data upto an arbitrary byte/word/dword position is it possible? for example:
if cnt = 0 or 1 or 2 or 3. how can the following be done
for (int i=0; i < cnt; i++)
Register = _mm_insert_epi32(Register, i);
Register1 = _mm_slli_si128(Register1, i);
Both are being dissallowed since i is required to be a constant value. Is there a workaround?
suppose at run time only two values are to be filled (cnt = 2).
1) It is compiler who does optimisation, not you. For compiler switch() is as good optimizable as any other operator.
2) there's no way to bit shift whole register