2d Arm Neon sdot op, and lowering to the intrinsic.
authorBenoit Jacob <benoitjacob@google.com>
Thu, 10 Jun 2021 20:57:44 +0000 (13:57 -0700)
committerAhmed Taei <ataei@google.com>
Thu, 10 Jun 2021 21:36:39 +0000 (14:36 -0700)
commit20daedacca803b81db6d8773b705345702bf0fc3
tree52d9a8371a76d0f63529bab96324d94d6b811553
parent4f01122c3f6c70beee8f736f196a09976602685f
2d Arm Neon sdot op, and lowering to the intrinsic.

This adds Sdot2d op, which is similar to the usual Neon
intrinsic except that it takes 2d vector operands, reflecting the
structure of the arithmetic that it's performing: 4 separate
4-dimensional dot products, whence the vector<4x4xi8> shape.

This also adds a new pass, arm-neon-2d-to-intr, lowering
this new 2d op to the 1d intrinsic.

Reviewed By: nicolasvasilache

Differential Revision: https://reviews.llvm.org/D102504
mlir/include/mlir/Conversion/ArmNeon2dToIntr/ArmNeon2dToIntr.h [new file with mode: 0644]
mlir/include/mlir/Conversion/Passes.h
mlir/include/mlir/Conversion/Passes.td
mlir/include/mlir/Dialect/ArmNeon/ArmNeon.td
mlir/lib/Conversion/ArmNeon2dToIntr/ArmNeon2dToIntr.cpp [new file with mode: 0644]
mlir/lib/Conversion/ArmNeon2dToIntr/CMakeLists.txt [new file with mode: 0644]
mlir/lib/Conversion/CMakeLists.txt
mlir/lib/Conversion/PassDetail.h
mlir/test/Dialect/ArmNeon/invalid.mlir [new file with mode: 0644]
mlir/test/Target/LLVMIR/arm-neon-2d.mlir [new file with mode: 0644]