ETISS 0.8.0
Extendable Translating Instruction Set Simulator (version 0.8.0)
Macros
__wmmintrin_pclmul.h File Reference
This graph shows which files directly or indirectly include this file:

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

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)))
uint32_t I
Definition: Instruction.h:80

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.