clang 19.0.0git
Macros
__wmmintrin_pclmul.h File Reference

Go to the source code of this file.

Macros

#define _mm_clmulepi64_si128(X, Y, I)
 Multiplies two 64-bit integer values, which are selected from source operands using the immediate-value operand.
 

Macro Definition Documentation

◆ _mm_clmulepi64_si128

#define _mm_clmulepi64_si128 (   X,
  Y,
 
)
Value:
((__m128i)__builtin_ia32_pclmulqdq128((__v2di)(__m128i)(X), \
(__v2di)(__m128i)(Y), (char)(I)))
#define X(type, name)
Definition: Value.h:143

Multiplies two 64-bit integer values, which are selected from source operands using the immediate-value operand.

The multiplication is a carry-less multiplication, and the 128-bit integer product is stored in the destination.

__m128i _mm_clmulepi64_si128(__m128i X, __m128i Y, const int I);
#define _mm_clmulepi64_si128(X, Y, I)
Multiplies two 64-bit integer values, which are selected from source operands using the immediate-val...

This intrinsic corresponds to the VPCLMULQDQ instruction.

Parameters
XA 128-bit vector of [2 x i64] containing one of the source operands.
YA 128-bit vector of [2 x i64] containing one of the source operands.
IAn immediate value specifying which 64-bit values to select from the operands. Bit 0 is used to select a value from operand X, and bit 4 is used to select a value from operand Y:
Bit[0]=0 indicates that bits[63:0] of operand X are used.
Bit[0]=1 indicates that bits[127:64] of operand X are used.
Bit[4]=0 indicates that bits[63:0] of operand Y are used.
Bit[4]=1 indicates that bits[127:64] of operand Y are used.
Returns
The 128-bit integer vector containing the result of the carry-less multiplication of the selected 64-bit values.

Definition at line 44 of file __wmmintrin_pclmul.h.