# min (sm4 - asm)

Component-wise float minimum.

min[_sat] dest[.mask], [-]src0[_abs][.swizzle], [-]src1[_abs][.swizzle], |
---|

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

[in] The result of the operation.
| |

[in] The components to compare to | |

[in] The components to compare to |

## Remarks

>= is used instead of > so that if min(x,y) = x then max(x,y) = y.

NaN has special handling. If one source operand is NaN, then the other source operand is returned and the choice is made per-component. If both are NaN, any NaN representation is returned. This conforms to new IEEE 754R rules.

Denorms are flushed, with the sign preserved, before comparison. However, the result written to *dest* may or may not be
denorm flushed.

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 | +inf | NaN |

-inf | -inf | -inf | -inf | -inf |

F | -inf | src0 or src1 | src0 | src0 |

-inf | -inf | src1 | +inf | +inf |

NaN | -inf | src1 | +inf | 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 |

## Related topics