mul (sm4 - asm)

Component-wise multiply.

mul[_sat] dest[.mask], [-]src0[_abs][.swizzle], [-]src1[_abs][.swizzle]
Item Description
dest
[in] The result of the operation. dest = src0 * src1
src0
[in] The multiplicand.
src1
[in] The multiplier.

Remarks

The following table shows the results obtained when executing the instruction with various classes of numbers, assuming that neither overflow or underflow occurs.

F means finite-real number.

src0 src1 -> -inf -F -1.0 -denorm -0 +0 denorm +1.0 +F +inf NaN
-inf +inf +inf +inf NaN NaN NaN NaN -inf -inf -inf NaN
-F +inf +F -src0 +0 +0 -0 -0 src0 -F -inf NaN
-1 +inf -src1 +1.0 +0 +0 -0 -0 -1.0 -src1 -inf NaN
-denorm NaN +0 +0 +0 +0 -0 -0 -0 -0 NaN NaN
-0 NaN +0 +0 +0 +0 -0 -0 -0 -0 NaN NaN
+0 iNaN -0 -0 -0 -0 +0 +0 +0 +0 NaN NaN
+denorm NaN -0 -0 -0 -0 +0 +0 +0 +0 NaN NaN
+1.0 -inf src1 -1.0 -0 -0 +0 +0 +1.0 src1 +inf NaN
+F -inf -F -src0 -0 -0 +0 +0 src0 +F +inf NaN
+inf -inf -inf -inf NaN NaN NaN NaN +inf +inf +inf NaN
NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN

This instruction applies to the following shader stages:

Vertex Shader Geometry Shader Pixel Shader
x x x

Minimum Shader Model

This function is supported in the following shader models.

Shader Model Supported
Shader Model 5 yes
Shader Model 4.1 yes
Shader Model 4 yes
Shader Model 3 (DirectX HLSL) no
Shader Model 2 (DirectX HLSL) no
Shader Model 1 (DirectX HLSL) no

Shader Model 4 Assembly (DirectX HLSL)