Использует ли побитовая операция (&, ^. | И т. Д.), Предоставляемая в качестве перегрузки операторов в std::bitset, инструкции AVX или SSE4?

Поскольку это зависит от реализации, единственный ли способ выяснить это - разборка?

2 ответа

Решение

Вы всегда можете посмотреть на STL источники, чтобы увидеть, если он использует SIMD, но я верю, что это зависит от компилятора и STL библиотека не использует напрямую SIMD & AVX, Компилятор должен выполнять векторизацию, если это возможно, как часть оптимизации.

Поэтому я бы предпочел взглянуть на отчет по оптимизации для конкретного цикла, чтобы увидеть, смог ли компилятор его векторизовать, и причину, если нет.

Поскольку это зависит от реализации, единственный ли способ выяснить это - разборка?

Да, другого пути нет. Также нет никаких гарантий того, что на самом деле используется.

Другие вопросы по тегам