Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
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 |