Issue 175189
Summary [X86] Add handling for llvm.cmul scalar intrinsics on PCLMULQDQ targets
Labels good first issue, backend:X86
Assignees
Reporter RKSimon
    Generic clmul support was added here:
https://llvm.org/docs/LangRef.html#llvm-clmul-intrinsic

X86 have similar PCLMUL instructions which multiple 2 x i64 operands and create a i128 result, all on the FPU:
https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=clmul&ig_expand=754

This initial ticket should add support for scalar i8/i16/i32/i64 clmul calls by promoting to i64, transferring to <2 x i64>and performing with the PCLMULQDQ instruction.

A suitable X86ISD::PCLMULQDQ opcode needs to be created, mapped in X86IntrinsicsInfo.h/X86InstrFragmentsSIMD.td with the X86::x86_pclmulqdq/x86_pclmulqdq_256/x86_pclmulqdq_512 intrinsics and the isel patterns updating in X86InstrSSE.td/X86InstrAVX512.td
_______________________________________________
llvm-bugs mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs

Reply via email to