[PATCH] D83571: [RFC][WIP] New carry-less multiplication instruction llvm.experimental.clmul

Shawn Landden via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Jul 10 09:48:23 PDT 2020


shawnl created this revision.
shawnl added reviewers: lebedev.ri, jyknight, kparzysz, scanon.
Herald added subscribers: llvm-commits, jdoerfert, hiraditya.
Herald added a reviewer: jdoerfert.
Herald added a project: LLVM.

  [RFC][WIP] New carry-less multiplication instruction llvm.experimental.clmul
  
  The problem I am having in continuing on this is that SelectionDAG
  has this concept of illegal types, and most of these hardware
  instructions return v1i128 even if i128 is not legal.
  
  The way I would really like to handle this is to do the necessary
  lowering BEFORE translation. This would also mean that the lowering
  doesn't have to be written twice. Once for the interpreter, and
  again for translation.
  
  However I am wondering how my i128 CTPOP lowering worked....maybe
  I just need to step through the code.


https://reviews.llvm.org/D83571

Files:
  llvm/docs/LangRef.rst
  llvm/include/llvm/CodeGen/ISDOpcodes.h
  llvm/include/llvm/IR/Intrinsics.td
  llvm/include/llvm/Support/TargetOpcodes.def
  llvm/include/llvm/Target/GenericOpcodes.td
  llvm/include/llvm/Target/GlobalISel/SelectionDAGCompat.td
  llvm/include/llvm/Target/TargetSelectionDAG.td
  llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
  llvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp
  llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
  llvm/lib/CodeGen/SelectionDAG/SelectionDAGDumper.cpp
  llvm/lib/IR/AutoUpgrade.cpp
  llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
  llvm/lib/Target/AArch64/AArch64InstrInfo.td
  llvm/test/CodeGen/AArch64/GlobalISel/legalizer-info-validation.mir
  llvm/test/CodeGen/AArch64/clmul.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D83571.277078.patch
Type: text/x-patch
Size: 11484 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200710/c0a31aaf/attachment-0001.bin>


More information about the llvm-commits mailing list