div (sm4 - asm)

Divisão em termos de componente.

div[_sat] dest[.mask], [-]src0[_abs][.swizzle], [-]src1[_abs][.swizzle]
Item Descrição
Dest
[in] O resultado da operação.
src0
[in] O dividendo.
src1
[in] O divisor.

Comentários

A tabela a seguir mostra os resultados obtidos ao executar a instrução com várias classes de números, supondo que nenhum estouro ou subfluxo ocorra.

Você deve observar as duas implementações permitidas de divisão: a/b e a*(1/b).

Um resultado disso é que há exceções à tabela abaixo para valores de denominador grandes (maior que 8,5070592e+37), em que 1/denominador é um denorm. Como as implementações podem executar a divisão como a*(1/b), em vez de a/b diretamente, e 1/[valor grande] é um desnorm que pode ser liberado, alguns casos na tabela produziriam resultados diferentes. Por exemplo, (+/-)INF/ (+/-)[valor > 8.5070592e+37] pode produzir NaN em algumas implementações, mas (+/-)INF em outras implementações

Nesta tabela F significa número finito-real.

src0 src1 -> -Inf -F -denorm -0 +0 +denorm +F +inf Nan
-Inf -inf -inf -inf -inf -inf -inf -inf NaN NaN
-F -inf -F src0 src0 src0 src0 +-F ou +-0 +inf NaN
-denorm -inf src1 -0 -0 +0 +0 src1 +inf NaN
-0 -inf src1 -0 -0 +0 +0 src1 +inf NaN
+0 -inf src1 +0 +0 +0 +0 src1 +inf NaN
+denorm -inf src1 +0 +0 +0 +0 src1 +inf NaN
+F -inf +-F ou +-0 src0 src0 src0 src0 +F +inf NaN
+inf NaN +inf +inf +inf +inf +inf +inf +inf NaN
NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN

Esta instrução se aplica aos seguintes estágios de sombreador:

Sombreador de vértice Sombreador de geometria Sombreador de pixel
x x x

Modelo de sombreador mínimo

Essa função tem suporte nos seguintes modelos de sombreador.

Modelo de Sombreador Com suporte
Modelo de sombreador 5 sim
Modelo de sombreador 4.1 sim
Modelo de sombreador 4 sim
Modelo de Sombreador 3 (DirectX HLSL) não
Modelo de Sombreador 2 (DirectX HLSL) não
Modelo de Sombreador 1 (DirectX HLSL) não

Assembly do Modelo de Sombreador 4 (DirectX HLSL)