llvm-project/mlir/test/Conversion
aartbik 19dbb230a2 [mlir] [VectorOps] Add scatter/gather operations to Vector dialect
Introduces the scatter/gather operations to the Vector dialect
(important memory operations for sparse computations), together
with a first reference implementation that lowers to the LLVM IR
dialect to enable running on CPU (and other targets that support
the corresponding LLVM IR intrinsics).

The operations can be used directly where applicable, or can be used
during progressively lowering to bring other memory operations closer to
hardware ISA support for a gather/scatter. The semantics of the operation
closely correspond to those of the corresponding llvm intrinsics.

Note that the operation allows for a dynamic index vector (which is
important for sparse computations). However, this first reference
lowering implementation "serializes" the address computation when
base + index_vector is converted to a vector of pointers. Exploring
how to use SIMD properly during these step is TBD. More general
memrefs and idiomatic versions of striding are also TBD.

Reviewed By: arpith-jacob

Differential Revision: https://reviews.llvm.org/D84039
2020-07-21 10:57:40 -07:00
..
AVX512ToLLVM [mlir][AVX512] Start a primitive AVX512 dialect 2020-03-20 14:11:57 -04:00
AffineToStandard [MLIR] Add lowering for affine.parallel to scf.parallel 2020-07-18 13:13:49 +05:30
GPUCommon Enable FileCheck -enable-var-scope by default in MLIR test 2020-06-12 00:43:09 +00:00
GPUToCUDA [mlir][gpu] Refactor ConvertGpuLaunchFuncToCudaCalls pass. 2020-05-21 08:53:47 -05:00
GPUToNVVM [mlir][NFC] Remove usernames and google bug numbers from TODO comments. 2020-07-07 01:40:52 -07:00
GPUToROCDL [mlir] make the bitwidth of device side index computations configurable (reland) 2020-06-29 12:22:39 +02:00
GPUToROCm [mlir][gpu][mlir-cuda-runner] Refactor ConvertKernelFuncToCubin to be generic. 2020-05-28 09:08:28 -05:00
GPUToSPIRV [mlir][NFC] Remove usernames and google bug numbers from TODO comments. 2020-07-07 01:40:52 -07:00
GPUToVulkan [mlir][spirv] Enhance AccessChainOp index type handling 2020-06-22 10:11:33 -04:00
LinalgToSPIRV [mlir][spirv] Use separate attribute for (version, capabilities, extensions) 2020-03-12 19:37:45 -04:00
SCFToGPU Enable FileCheck -enable-var-scope by default in MLIR test 2020-06-12 00:43:09 +00:00
SCFToStandard [mlir] Refactor BoolAttr to be a special case of IntegerAttr 2020-06-04 16:41:24 -07:00
SPIRVToLLVM [MLIR][LLVMDialect] SelectionOp conversion pattern 2020-07-21 17:11:46 +03:00
ShapeToSCF [MLIR][Shape] Lower `shape.shape_eq` to `scf` 2020-07-16 14:44:29 +00:00
ShapeToStandard [MLIR][Shape] Allow `shape.rank` to accept extent tensors `tensor?xindex>` 2020-07-20 14:47:19 +00:00
StandardToLLVM [mlir] LLVM dialect: use addressof instead of constant to create function pointers 2020-06-29 12:21:33 +02:00
StandardToSPIRV [MLIR][StdToSPIRV] Fixed a typo in ops conversion tests 2020-07-14 21:46:07 +03:00
VectorToLLVM [mlir] [VectorOps] Add scatter/gather operations to Vector dialect 2020-07-21 10:57:40 -07:00
VectorToROCDL [mlir][rocdl] Adding vector to ROCDL dialect lowering 2020-06-11 14:28:13 +00:00
VectorToSCF [mlir][Vector] Fix masking logic in VectorToSCF 2020-07-17 13:24:07 -04:00