Я запускаю код, который иногда дает это:
UInt32 current;
int left, right;
...
//sometimes left == right and no shift occurs
current <<= (32 + left - right);
//this works
current <<= (32 - right);
current <<= left;
Появляется для любого значения> = 32, только значение% 32 смещено. Есть ли какая-то "оптимизация", происходящая в рамках?