Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Microsoft Specific
Compute the high 64 bits of the expression a*b+c.
__m64 __m64_muladd64hi(
__m64 a,
__m64 b,
__m64 c
);
__m64 __m64_muladd64hi_u(
__m64 a,
__m64 b,
__m64 c
);
Parameters
[in] a
The first factor.[in] b
The second factor.[in] c
The number to be added to the product of the first two parameters.
Requirements
Intrinsic |
Architecture |
---|---|
__m64_muladd64hi |
IPF |
__m64_muladd64hi_u |
IPF |
Header file <intrin.h>
Remarks
__m64_muladd64hi treats the arguments as signed 64-bit integers. __m64_muladd64hi_u treats the arguments as unsigned 64-bit integers.
Example
// muladd64hi.c
// processor: IPF
#include <stdio.h>
#include <intrin.h>
#include <limits.h>
#pragma intrinsic(__m64_muladd64hi, __m64_muladd64hi_u, __m64_muladd64lo)
int main()
{
__m64 a, b, c, result;
a.m64_i64 = 2I64;
b.m64_i64 = _I64_MAX;
c.m64_i64 = _I64_MAX;
result = __m64_muladd64hi(a, b, c);
printf_s("0x%I64x", result.m64_i64);
result = __m64_muladd64lo(a, b, c);
printf_s("%I64x\n", result.m64_i64);
b.m64_u64 = _UI64_MAX;
c.m64_u64 = _UI64_MAX;
result = __m64_muladd64hi_u(a, b, c);
printf_s("0x%I64x", result.m64_u64);
result = __m64_muladd64lo(a, b, c);
printf_s("%I64x", result.m64_u64);
return 0;
}
0x17ffffffffffffffd 0x2fffffffffffffffd