# 3DNow! Intrinsics

**Visual Studio 2010**

Microsoft Specific

This topic contains the 3DNow! intrinsics. For each intrinsic, the header file mm3dnow.h is required.

The following table lists the 3DNow! intrinsics alphabetically.

Intrinsic | Use |
---|---|

Clears the architectural state when switching between MMX and floating-point instructions. | |

Returns a 64-bit MMX value where the lower half is set to the floating-point, single-precision value from the source operand and the upper half is zero. There is no error return. | |

Calculates the rounded averages of eight unsigned 8-bit integer values. | |

Converts packed floating-point, single-precision values to packed 32-bit integer values. | |

Converts packed floating-point, single-precision values to packed 16-bit signed integer values using truncation. | |

Performs packed floating-point, single-precision accumulation. | |

Performs packed floating-point, single-precision addition. | |

Compares packed floating-point, single-precision values to be equal and sets the corresponding return value to ones or zeros based on the result of the comparison. | |

Compares the first packed floating-point, single-precision value to be greater than or equal to the second one and sets the corresponding return value to ones or zeros based on the result of the comparison. | |

Compares the first packed floating-point, single-precision value to be greater than the second one and sets the corresponding return value to ones or zeros based on the result of the comparison. | |

Returns the larger of the two packed floating-point, single-precision values. | |

Returns the smaller of the two packed floating-point, single-precision values. | |

Performs packed floating-point, single-precision multiplication. | |

Performs packed floating-point, single-precision negative accumulation. | |

Performs packed floating-point, single-precision positive-negative accumulation. | |

Performs scalar floating-point, low-precision reciprocal approximation. | |

Performs the first intermediate step in the Newton-Raphson iteration to refine the reciprocal approximation produced by the | |

Performs the second and final step in the Newton-Raphson iteration to refine the reciprocal or reciprocal square root approximation produced by the | |

Performs the first intermediate step in the Newton-Raphson iteration to refine the reciprocal square root approximation produced by | |

Performs scalar floating-point, low-precision reciprocal square root approximation. | |

Performs packed floating-point, single-precision subtraction. | |

Performs packed floating-point, single-precision reverse subtraction. | |

Converts packed 32-bit integer values to packed floating-point, single-precision values. | |

Converts packed 16-bit signed integer values to packed floating-point, single-precision values. | |

Multiplies four signed 16-bit integer values in the source operand by four signed 16-bit integer values in the destination operand. | |

Loads a 32-byte cache line into L1 data cache and sets the cache line state to | |

Loads a 32-byte cache line into L1 data cache and sets the cache line state to | |

Swaps upper and lower halves of the source operand. | |

Returns the floating-point, single-precision value from the lower half of the 64-bit MMX value in the source operand. There is no error return. The compiler correctly ensures that an implict FEMMS is issued before any attempt to use the result of _m_to_float( ) operation. |