Новый синтаксис AVX-инструкций

У меня был код на C, написанный с некоторыми intel-intrinsincs. После того, как я скомпилировал его сначала с помощью avx, а затем с флагами ssse3, я получил два совершенно разных ассемблерных кода. Например:

AVX:

vpunpckhbw  %xmm0, %xmm1, %xmm2 

SSSE3:

movdqa %xmm0, %xmm2
punpckhbw %xmm1, %xmm2

Понятно, чтоvpunpckhbw простоpunpckhbw но с использованием синтаксиса AVX три операнда. Но задержка и пропускная способность первой команды эквивалентны задержке и пропускной способности последних, вместе взятых? Или ответ зависит от архитектуры, которую я использую? Это IntelCore i5-6500, кстати.

Я пытался найти ответ в таблицах инструкций Агнер Фог, но не смог найти ответ. Спецификации Intel также не помогли (однако, вероятно, я просто пропустил ту, которая мне была нужна).

Всегда ли лучше использовать новый синтаксис AVX, если это возможно?

Ответы на вопрос(1)

Ваш ответ на вопрос