Здравствуйте, Eeel, Вы писали:
E>Здравствуйте, Erop, Вы писали:
E>>А где тут минус
E>>и and с чем-то не тем...
E>>Тут или какой-то хитрый рюх или 1<<32 не в то посчитался, (лучше, конечно, 1ULL<<32 писать) или ещё чего...
E>(В оригинале суффикса ull не было.)
Ясен пень, что не было, это же был псевдокод, всё-таки...
E>Но, что интересно, Clang 3.8 заменяет два независимых сложения на нечто подобное с битовыми операциями:
E>E> movabs rax, -4294967296
E> mov rcx, rdi
E> and rcx, rax
E> add edi, esi
E> lea rcx, [rcx + rsi]
E> and rcx, rax
E> or rdi, rcx
E> mov rax, rdi
E> ret
E>
Ну так же предупреждал, что так, скорее всего, быстрее на актуальный x86
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском