# imul (sm4 - asm)

Signed integer multiply.

imul destHI[.mask], destLO[.mask], [-]src0[.swizzle], [-]src1[.swizzle] |
---|

Item | Description |
---|---|

[in] The address of the high 32 bits of the result. | |

[in] The address of the low 32 bits of the result. | |

[in] The value to multiply with | |

[in] The value to multiply with |

## Remarks

Component-wise multiply of 32-bit operands
*src0* and *src1* (both are signed), producing the correct
full 64-bit (per component) result. The low 32 bits (per
component) are placed in *destLO*. The high 32 bits (per
component) are placed in *destHI*.

Either *destHI *or *destLO* may be specified as NULL instead of
specifying a register, if the high or low 32 bits of the
64-bit result are not needed.

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 |

## Related topics