Я пытаюсь понять конкретную инструкцию AVX512F vcvtps2udq.Как работают режимы округления AVX512 (или NDISASM просто путают)?
Подпись к инструкции VCVTPS2UDQ zmm1 {k1}{z}, zmm2/m512/m32bcst{er}
. Информация о руководстве приведена ниже.
В попытке понять новые режимы округления, следующий фрагмент кода собран с NASM (2.12.02)
vcvtps2udq zmm0,zmm1
vcvtps2udq zmm0,zmm1,{rz-sae}
vcvtps2udq xmm0,xmm1
Deassembling результаты с NDISASM (2.12.02) дает много путаницы и следующие коды:
62F17C4879C1 vcvtps2udq zmm0,zmm1
62F17C7879C1 vcvtps2udq xmm0,xmm1
62F17C0879C1 vcvtps2udq xmm0,xmm1
вопрос: вторая линия deassembled с XMM регистров вместо регистра ZMM (что я бы ожидать). Имеет нулевой режим округления (rz-sae), что-то делать с ним. Или это просто NDISASM неправильно и не может различать коды операций 62F17C7879C1 и 62F17C0879C1.
набор инструкций справочного руководство Intel имеет следующее описание:
Преобразует шестнадцать упакованные значения с плавающей точкой с одинарной точностью в исходного операнда до шестнадцати беззнаковых целых чисел в двойном слове операнда назначения.
Если преобразование неточно, возвращаемое значение округляется в соответствии с битами управления округлением в регистре MXCSR или встроенными битами управления округлением . Если преобразованный результат не может быть представлен в формате назначения, то недопустимое исключение с плавающей запятой составляет , и если это исключение маскируется, целочисленное значение 2w-1 возвращается , где w представляет количество бит в целевом формат.
Исходный операнд является ЗММ/регистр YMM/ХММ, 512/256/128-бит памяти местоположение, или 512/256/128-битовый вектор транслируется из 32-битной памяти местоположения. Операндом-получателем является регистр ZMM/YMM/XMM , условно обновленный с помощью writemask k1.
Если у вас есть процессор, поддерживающий инструкции AVX-512, я очень ревнив. –
, очевидно, NDISASM дает такую же разборку для разных кодов операций, поэтому, по крайней мере, должно быть ограничение в NDISASM и ошибка, если он утверждает, что поддерживает AVX512. Я с @CodyGray на этом. –
@CodyGray Не нужно ревновать; хотя у меня есть несколько мнимых ... – HJLebbink