Re[7]: Как обойти strict aliasing rule?
От: Erop Россия  
Дата: 18.06.16 16:52
Оценка:
Здравствуйте, 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
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.