Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CLMUL - remaining functions #1168

Open
Torinde opened this issue Mar 28, 2024 · 2 comments
Open

CLMUL - remaining functions #1168

Torinde opened this issue Mar 28, 2024 · 2 comments
Labels
instruction-set-support Implementing new SIMD ISA extensions portably

Comments

@Torinde
Copy link
Contributor

Torinde commented Mar 28, 2024

https://en.wikipedia.org/wiki/CLMUL_instruction_set

  • PCLMULLQLQDQ xmmreg,xmmrm [rm: 66 0f 3a 44 /r 00] Multiply the low halves of the two registers.
  • PCLMULHQLQDQ xmmreg,xmmrm [rm: 66 0f 3a 44 /r 01] Multiply the high half of the destination register by the low half of the source register.
  • PCLMULLQHQDQ xmmreg,xmmrm [rm: 66 0f 3a 44 /r 10] Multiply the low half of the destination register by the high half of the source register.
  • PCLMULHQHQDQ xmmreg,xmmrm [rm: 66 0f 3a 44 /r 11] Multiply the high halves of the two registers.

PCLMULQDQ is already implemented: https://github.com/simd-everywhere/implementation-status/blob/main/x86.md#pclmulqdq

@mr-c
Copy link
Collaborator

mr-c commented Mar 28, 2024

There is no intrinsic defined for PCLMULLQLQDQ, it seems..

@mr-c mr-c added the instruction-set-support Implementing new SIMD ISA extensions portably label Mar 28, 2024
@aqrit
Copy link
Contributor

aqrit commented Apr 6, 2024

PCLMUL[L/H]Q[L/H]QDQ is a "Mnemonic specifying specific values of the immediate operand".

So it is just some cheeky disassembly naming.

aka. PCLMULQDQ(a, b, 0) == PCLMULLQLQDQ(a, b)

SIMDe operates at the intrinsic level so CLMUL is at 100% completion.

Someone could add SIMDe extensions for the mnemonics but... no one is going to be able to find them.
Maybe a source code comment on _mm_clmulepi64_si128 to mention the other mnemonic names would make it greppable?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
instruction-set-support Implementing new SIMD ISA extensions portably
Projects
None yet
Development

No branches or pull requests

3 participants