Share via


div (sm4 - asm)

Divisione a livello di componente.

div[_sat] dest[.mask], |src0[_abs][.swizzle], |src1[_abs][.swizzle]
Elemento Descrizione
Dest
[in] Risultato dell'operazione.
src0
[in] Dividendo.
src1
[in] Divisore.

Commenti

La tabella seguente mostra i risultati ottenuti durante l'esecuzione dell'istruzione con varie classi di numeri, presupponendo che non si verifichino overflow o sottoflow.

Si notino le due implementazioni consentite di divisione: a/b e a*(1/b).

Un risultato di questo è che esistono eccezioni alla tabella seguente per valori denominatori di grandi dimensioni (maggiore di 8,5070592e+37), dove 1/denominatore è un denorm. Poiché le implementazioni possono eseguire una divisione come a*(1/b), anziché direttamente a/b e 1/[valore large] è un denorm che potrebbe essere scaricato, alcuni casi nella tabella produrrebbero risultati diversi. Ad esempio, (+/-)INF / (+/-)[value > 8.5070592e+37] può produrre NaN in alcune implementazioni, ma (+/-)INF in altre implementazioni

In questa tabella F significa numero reale finito.

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 o +-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 o +-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

Questa istruzione si applica alle fasi dello shader seguenti:

Vertex shader Geometry shader Pixel shader
x x x

Modello minimo shader

Questa funzione è supportata nei modelli di shader seguenti.

Modello di shader Supportato
Modello shader 5
Modello shader 4.1
Modello shader 4
Modello shader 3 (DirectX HLSL) no
Modello shader 2 (DirectX HLSL) no
Modello shader 1 (DirectX HLSL) no

Assembly del modello shader 4 (DirectX HLSL)