This documentation is archived and is not being maintained.

__m64_muladd64hi, __m64_muladd64hi_u

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 

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







Header file <intrin.h>

__m64_muladd64hi treats the arguments as signed 64-bit integers. __m64_muladd64hi_u treats the arguments as unsigned 64-bit integers.

// 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