div (sm4 - asm)

Разделение на уровне компонентов.

div[_sat] dest[.mask], [-]src0[_abs][.swizzle], [-]src1[_abs][.swizzle]
Элемент Описание
Dest
[in] Результат операции.
src0
[in] Делимое.
src1
[in] Делитель.

Комментарии

В следующей таблице показаны результаты, полученные при выполнении инструкции с различными классами чисел, при условии, что ни переполнения, ни недополука не происходит.

Следует отметить две допустимые реализации деления: a/b и a*(1/b).

Одним из результатов этого является то, что в приведенной ниже таблице имеются исключения для больших значений знаменателя (больше 8,5070592e+37), где 1/знаменатель является денормом. Так как реализации могут выполнять деление как a*(1/b), а не a/b напрямую, и 1/[большое значение] является денормом, который может быть удален, в некоторых случаях в таблице будут даваться разные результаты. Например, (+/-)INF / (+/-)[значение > 8.5070592e+37] может создавать NaN в некоторых реализациях, но (+/-)INF в других реализациях

В этой таблице F означает конечное-реальное число.

src0 src1 —> -Inf -F -denorm -0 +0 +денорм +F +inf Nan
-Inf -inf -inf -inf -inf -inf -inf -inf Не число Не число
-F -inf -F src0 src0 src0 src0 +-F или +-0 +inf Не число
-denorm -inf src1 -0 -0 +0 +0 src1 +inf Не число
-0 -inf src1 -0 -0 +0 +0 src1 +inf Не число
+0 -inf src1 +0 +0 +0 +0 src1 +inf Не число
+денорм -inf src1 +0 +0 +0 +0 src1 +inf Не число
+F -inf +-F или +-0 src0 src0 src0 src0 +F +inf Не число
+inf Не число +inf +inf +inf +inf +inf +inf +inf Не число
Не число Не число Не число Не число Не число Не число Не число Не число Не число Не число

Эта инструкция применяется к следующим этапам шейдера:

Вершинный построитель текстуры Шейдер геометрии Построитель текстуры
x x x

Минимальная модель шейдера

Эта функция поддерживается в следующих моделях шейдеров.

Сборка модели шейдера 4 (DirectX HLSL)