imad (sm4 - asm)

Signed integer multiply and add.

imad dest[.mask], [-]src0[.swizzle], [-]src1[.swizzle], [-]src2[.swizzle]
Item Description
dest
[in] The result of the operation.
src0
[in] Value to multiply with src1.
src1
[in] Value to multiply with src0.
src2
[in] Value to add to the product of src0 and src1.

Remarks

Component-wise imul of 32-bit operands src0 and src1 (signed), keeping low 32-bits (per component) of the result, followed by an iadd of src2, producing the correct low 32-bit (per component) result. The 32-bit results are placed in dest.

Optional negate modifier on source operands takes 2's complement before performing arithmetic operation.

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)