Какие процессоры поддерживают инструкцию MOVBE?

Иногда GCC генерирует эту команду при компиляции с помощью -march=atom. Поддерживает ли каждый процессор Intel Atom поддержку MOVBE?

Какие другие процессоры поддерживают эту инструкцию? Я не могу найти эту информацию на веб-сайте Intel. Пожалуйста, помогите.

Ответ 1

Эта инструкция изначально была уникальной для процессора Intel® Atom ™.

Со стороны Intel:

Компиляторы Intel® 11.0 позволяют вам нацелиться на процессор Intel® Atom ™ используя /QxSSE3_ATOM или -xSSE3_ATOM параметры компилятора. Эти варианты включить генерацию movbe инструкция, которая является уникальной для Процессор Intel® Atom ™.

В других микроархитектурах (http://instlatx64.atw.hu/ с информацией о uop от https://agner.org/optimize/):

  • Мейнстрим Intel: Haswell и позже. Включая Haswell Xeon (Ex-xxxx v3).
    Декодируется как 2 или 3 мопа, примерно так же, как bswap + загрузка или сохранение.
  • Мейнстрим AMD: экскаватор и семья Ризен Steamroller и раньше не было.
    Эффективно декодирует до одного мопа.

неосновные процессоры:

  • Устаревший заказ Intel Atom: все
  • Семейство Intel Silvermont вышло из строя Atom: все. Эффективно декодирует до одного мопа.
  • AMD Jaguar. Эффективно декодирует до одного мопа.

  • Intel Xeon Phi: Knight Landing (на основе Silvermont) и выше. (Может быть, не на Рыцарском углу.)

Ответ 2

Похоже, что все процессоры Atom поддерживают MOVBE; во всяком случае, первый и наименее способный (Atom 230). (См. Например, http://www.linuxquestions.org/questions/linux-hardware-18/proc-cpuinfo-output-816192/ для доказательства.) Я не верю, что какие-либо процессоры Intel, не поддерживающие Atom, поддерживают MOVBE; во всяком случае, недавние процессоры Core i7 выглядят не такими (см., например, http://www.techsupportforum.com/forums/f108/i7-running-on-3-of-8-threads-522063.html и искать "movbe" для подтверждения).

Вы можете обнаружить поддержку MOVBE во время выполнения с использованием CPUID.