Инструкции процессора Rust i128 ops отличаются от инструкций C++ i128 opsC++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Инструкции процессора Rust i128 ops отличаются от инструкций C++ i128 ops

Сообщение Anonymous »

Я оцениваю производительность Rust для распространенных операций со значениями i128 и i64. Оказывается, значение i128 требует 2 дополнительных операций ЦП для выполнения одной и той же операции. Я использовал Rustc v1.83.0 с флагом -O.
Rust godbolt
Однако для сравнения я также использовал аналогичную логику для C++ clang 14 и -O, и, что удивительно, он показал одинаковое количество операций ЦП для типов int64_t и __int128.
C++ godbolt
Я понимаю, что Rust использует LLVM для генерации кода, который отличается от clang, но я ожидал, что такие базовые операции низкого уровня будут оптимизированы аналогичным образом.
Почему такая разница? Как я могу использовать более оптимизированную реализацию в Rust?

Подробнее здесь: https://stackoverflow.com/questions/793 ... c-i128-ops
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»