# 3DNow! Intrinsics

Visual Studio 2005

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.

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 _m_pfrcp intrinsic function.

Performs the second and final step in the Newton-Raphson iteration to refine the reciprocal or reciprocal square root approximation produced by the _m_pfrcp or _m_pfsqrt intrinsic functions, respectively.

Performs the first intermediate step in the Newton-Raphson iteration to refine the reciprocal square root approximation produced by _m_pfsqrt intrinsic function.

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 exclusive.

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

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.