simd-everywhere / simde

Implementations of SIMD instruction sets for systems which don't natively support them.
https://simd-everywhere.github.io/blog/
MIT License
2.28k stars 237 forks source link

CLMUL - remaining functions #1168

Open Torinde opened 4 months ago

Torinde commented 4 months ago

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

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

mr-c commented 4 months ago

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

aqrit commented 3 months ago

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?